Lớp trừu tượng giải thích bằng ví dụ trong php là gì?

Các lớp trừu tượng trong PHP được sử dụng để mở rộng các lớp khác. Được sử dụng khi nhiều hơn một lớp sử dụng cùng một logic. Dễ đọc và ẩn các chi tiết nhỏ hơn (rõ ràng) để làm cho cuộc sống của chúng ta đơn giản hơn

Ví dụ

Giả sử chúng ta có một webshop với 2 loại Người dùng. khách hàng và nhân viên. Người dùng, bất kể là khách hàng hay nhân viên, luôn có một user nameuser type. Mặc dù loại khác nhau cho mỗi người dùng, tên luôn giống nhau. tên tài khoản. Đây là cách lớp trừu tượng của chúng ta sẽ trông như thế nào

name = $name;
    }

    public function getUserName() {
        return $this->name;
    }

    public abstract function getUserType();
}

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Nhưng riêng lớp trừu tượng này sẽ không làm được gì nhiều. Nếu bạn tạo một đối tượng Người dùng, bạn sẽ có một người dùng không có chức năng. Điều này không tồn tại trên webshop của chúng tôi. Vì vậy, để làm cho nó hữu ích, chúng tôi tạo hai loại người dùng

name = $name;
        $this->id = $id;
    }

    public function getUserType() {
        return 'customer';
    }
}

class Employee extends User{
    private $id

    public function __construct($name, $id) {
        $this->name = $name;
        $this->id = $id;
    }

    public function getUserType() {
        return 'employee';
    }
}

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Như bạn có thể thấy, các lớp này được mở rộng từ lớp trừu tượng của chúng ta. Điều này có nghĩa là phương thức getUserName() được bao gồm/có thể truy cập được, mặc dù không trực quan trong các lớp con của chúng ta

Ngoài ra, mọi phương thức được viết trong lớp trừu tượng cha có thể được ghi đè trong lớp con. Như bạn có thể thấy, chúng tôi đã xác định getUserType(), nhưng chưa có bất kỳ chức năng nào. Trong các lớp con, chúng tôi ghi đè phương thức này và cung cấp cho nó chức năng. Điều này bây giờ sẽ cho chúng tôi biết thêm về loại người dùng đang được sử dụng

Khi nào có thể định nghĩa một lớp tóm tắt bằng cách sử dụng từ khóa abstract. Một lớp được định nghĩa là trừu tượng không thể được khởi tạo

Sau đây là một số điểm quan trọng về lớp trừu tượng và phương thức

  1. Một lớp trừu tượng có thể có các phương thức và thuộc tính giống như bất kỳ lớp bình thường nào khác
  2. Một lớp trừu tượng không thể được khởi tạo, do đó chúng ta cần tạo một lớp con mở rộng nó, sau đó chúng ta có thể tạo đối tượng của lớp con
  3. Nếu một lớp thậm chí có một phương thức trừu tượng duy nhất thì lớp đó cũng phải trừu tượng
  4. Một phương thức trừu tượng chỉ là khai báo, nơi chúng tôi cung cấp tên của phương thức và đối số, trong khi phần cơ thể trống

Đừng lo lắng nếu nó quá nhiều để bạn hiểu. Chúng tôi sẽ trình bày tất cả các điểm từng bước với các ví dụ, hãy bắt đầu bằng cách hiểu cách chúng tôi tạo một lớp trừu tượng


Tạo một lớp abstract

Để khai báo một lớp trừu tượng, chúng ta cần sử dụng từ khóa abstract trước tên của lớp

Hãy lấy một ví dụ

Trong ví dụ trên, lớp Vehicle của chúng ta là một lớp trừu tượng, có một phương thức trừu tượng

Ý tưởng đằng sau việc tạo lớp trừu tượng là ràng buộc các nhà phát triển tuân theo một bộ hướng dẫn, ví dụ: nếu bạn muốn tạo một lớp mới mở rộng lớp của chúng ta Vehicle thì bạn sẽ phải cung cấp định nghĩa cho phương thức trừu tượng

name. " - Engine start...
"; } // non-abstract public function stop public function stop() { echo $this->name. " - Engine stop...
"; } // non-abstract public function setName public function setName($name) { $this->name = $name; } // abstract function mileage abstract public function mileage() { } } ?>
0, nếu không thì lớp con . Do đó, tất cả các lớp con bắt buộc phải cung cấp định nghĩa cho phương thức
name. " - Engine start...
"; } // non-abstract public function stop public function stop() { echo $this->name. " - Engine stop...
"; } // non-abstract public function setName public function setName($name) { $this->name = $name; } // abstract function mileage abstract public function mileage() { } } ?>
0


Phương thức phi trừu tượng trong lớp trừu tượng

Bất kỳ lớp nào có một phương thức trừu tượng duy nhất phải được khai báo trừu tượng. Nhưng một lớp trừu tượng cũng có thể có các phương thức không trừu tượng, có thể được truy cập và sử dụng trực tiếp bởi các lớp con mà không cần ghi đè chúng

Hãy mở rộng ví dụ trên và thêm một phương thức không trừu tượng vào lớp của chúng ta Vehicle

name. " - Engine start...
"; } // non-abstract public function stop public function stop() { echo $this->name. " - Engine stop...
"; } // non-abstract public function setName public function setName($name) { $this->name = $name; } // abstract function mileage abstract public function mileage() { } } ?>

Trong đoạn mã trên, chúng tôi đã thêm ba phương thức không trừu tượng là

name. " - Engine start...
"; } // non-abstract public function stop public function stop() { echo $this->name. " - Engine stop...
"; } // non-abstract public function setName public function setName($name) { $this->name = $name; } // abstract function mileage abstract public function mileage() { } } ?>
3,
name. " - Engine start...
"; } // non-abstract public function stop public function stop() { echo $this->name. " - Engine stop...
"; } // non-abstract public function setName public function setName($name) { $this->name = $name; } // abstract function mileage abstract public function mileage() { } } ?>
4 và
name. " - Engine start...
"; } // non-abstract public function stop public function stop() { echo $this->name. " - Engine stop...
"; } // non-abstract public function setName public function setName($name) { $this->name = $name; } // abstract function mileage abstract public function mileage() { } } ?>
5 vào lớp trừu tượng Vehicle của chúng tôi


Kế thừa các lớp trừu tượng

Cũng giống như bất kỳ lớp nào khác, chúng ta cũng có thể tạo các lớp mở rộng các lớp trừu tượng

Sự khác biệt duy nhất ở đây là lớp con phải cung cấp định nghĩa cho phương thức trừu tượng được khai báo trong lớp cha trừu tượng

Nếu lớp con không cung cấp định nghĩa cho phương thức trừu tượng, thì nó cũng nên được định nghĩa là một lớp trừu tượng

Hãy tạo hai lớp con kế thừa lớp Vehicle và sẽ có định nghĩa cho phương thức trừu tượng

name. " - Engine start...
"; } // non-abstract public function stop public function stop() { echo $this->name. " - Engine stop...
"; } // non-abstract public function setName public function setName($name) { $this->name = $name; } // abstract function mileage abstract public function mileage() { } } ?>
0

name . "
"; echo "My mileage range is - 15 to 22 Km/L"; } } ?>

Chúng ta có thể có bao nhiêu lớp con tùy thích, hãy tạo một lớp khác

name . "
"; echo "My mileage range is - 35 to 47 Km/L"; } } ?>

Như đã đề cập ở trên rằng một lớp trừu tượng không thể có bất kỳ đối tượng nào, khi chúng ta đã định nghĩa các lớp con phù hợp, chúng ta có thể tạo đối tượng cho chúng

lớp trừu tượng trong PHP với ví dụ là gì?

Các lớp và phương thức trừu tượng là khi lớp cha có một phương thức được đặt tên nhưng cần (các) lớp con của nó để thực hiện các tác vụ. Lớp trừu tượng là lớp chứa ít nhất một phương thức trừu tượng . Một phương thức trừu tượng là một phương thức được khai báo, nhưng không được triển khai trong mã.

lớp trừu tượng với ví dụ là gì?

Các lớp trừu tượng rất cần thiết để cung cấp tính trừu tượng cho mã để làm cho mã có thể sử dụng lại và mở rộng được. Ví dụ: lớp cha Xe có Xe tải và Xe máy kế thừa từ nó là một trừu tượng cho phép dễ dàng thêm nhiều xe hơn .

Tại sao nên sử dụng lớp trừu tượng trong PHP?

Chúng tôi sử dụng các lớp trừu tượng khi chúng tôi muốn lập trình viên (chính mình hoặc người khác) viết một phương thức lớp nhất định , nhưng chúng tôi . Lấy một ví dụ, hình tròn, hình chữ nhật, hình bát giác, v.v.

một lớp trừu tượng giải thích là gì?

Lớp trừu tượng là lớp được thiết kế để sử dụng riêng làm lớp cơ sở . Một lớp trừu tượng chứa ít nhất một hàm thuần ảo. Bạn khai báo một hàm ảo thuần túy bằng cách sử dụng một bộ xác định thuần túy ( = 0) trong khai báo một hàm thành viên ảo trong khai báo lớp.