Kế thừa đa cấp trong chương trình PHP

Trong đa cấp, bậc thang một đối một tăng. Nhiều lớp có liên quan đến kế thừa, nhưng một lớp chỉ mở rộng một. Lớp con thấp nhất có thể sử dụng tất cả các thành viên của lớp siêu của nó. Kế thừa đa cấp là một cách gián tiếp để thực hiện đa kế thừa. Chương trình sau giải thích

Thí dụ

lớp một
{
hàm công khai function_a(){
tiếng vang “lớp A”;
}
}

lớp b mở rộng a
{
hàm công khai function_b(){
tiếng vang “lớp B”;
}
}

lớp c mở rộng b
{
hàm công khai function_c(){
tiếng vang “lớp c”;
}
}

tiếng vang c. hàm_c();
tiếng vang c. hàm_b();
tiếng vang c. hàm_a();

?>

Lớp con sẽ kế thừa tất cả các thuộc tính và phương thức public và protected từ lớp cha. Ngoài ra, nó có thể có các thuộc tính và phương thức riêng

Một lớp kế thừa được định nghĩa bằng cách sử dụng từ khóa extends

Hãy xem một ví dụ

Thí dụ

lớp trái cây {
tên $ công khai;
$color công khai;
hàm công khai __construct($name, $color) {
$this->name = $name;
$this->color = $color;
}
giới thiệu chức năng công cộng () {
echo "Quả là {$this->name} và màu là {$this->color}. “;
}
}

// Strawberry được kế thừa từ Fruit
lớp Dâu tây mở rộng Trái cây {
thông báo chức năng công khai() {
tiếng vang "Tôi là trái cây hay quả mọng?";
}
}
$strawberry = new Strawberry("Dâu tây", "đỏ");
$dâu->tin nhắn();
$dâu->giới thiệu();
?>

Tự mình thử »

Ví dụ giải thích

Lớp Strawberry được kế thừa từ lớp Fruit

Điều này có nghĩa là lớp Strawberry có thể sử dụng các thuộc tính public $name và $color cũng như các phương thức public __construct() và intro() từ lớp Fruit do tính kế thừa

Lớp Strawberry cũng có phương thức riêng. thông điệp()



PHP - Kế thừa và Công cụ sửa đổi quyền truy cập được bảo vệ

Trong chương trước chúng ta đã biết rằng các thuộc tính hoặc phương thức của protected có thể được truy cập trong lớp và bởi các lớp dẫn xuất từ ​​lớp đó. Điều đó nghĩa là gì?

Hãy xem một ví dụ

Thí dụ

lớp trái cây {
tên $ công khai;
$color công khai;
hàm công khai __construct($name, $color) {
$this->name = $name;
$this->color = $color;
}
giới thiệu chức năng được bảo vệ() {
echo "Quả là {$this->name} và màu là {$this->color}. “;
}
}

lớp Dâu tây mở rộng Trái cây {
thông báo chức năng công khai() {
tiếng vang "Tôi là trái cây hay quả mọng?";
}
}

// Thử gọi cả ba phương thức từ lớp bên ngoài
$strawberry = new Strawberry("Dâu tây", "đỏ"); . __construct() là công khai
$dâu->tin nhắn(); . tin nhắn () là công khai
$dâu->giới thiệu(); . giới thiệu () được bảo vệ
?>

Tự mình thử »

Trong ví dụ trên, chúng ta thấy rằng nếu chúng ta cố gắng gọi một phương thức protected (intro()) từ bên ngoài lớp, chúng ta sẽ gặp lỗi. Các phương pháp public sẽ hoạt động tốt

Hãy xem một ví dụ khác

Thí dụ

lớp trái cây {
tên $ công khai;
$color công khai;
hàm công khai __construct($name, $color) {
$this->name = $name;
$this->color = $color;
}
giới thiệu chức năng được bảo vệ() {
echo "Quả là {$this->name} và màu là {$this->color}. “;
}
}

lớp Dâu tây mở rộng Trái cây {
thông báo chức năng công khai() {
tiếng vang "Tôi là trái cây hay quả mọng?";
// Gọi phương thức được bảo vệ từ bên trong lớp dẫn xuất - OK
$this -> giới thiệu();
}
}

$strawberry = new Strawberry("Dâu tây", "đỏ"); . __construct() là công khai
$dâu->tin nhắn(); . message() là công khai và nó gọi intro() (được bảo vệ) từ bên trong lớp dẫn xuất
?>

Tự mình thử »

Trong ví dụ trên, chúng tôi thấy rằng tất cả đều hoạt động tốt. Đó là bởi vì chúng ta gọi phương thức protected (intro()) từ bên trong lớp dẫn xuất


PHP - Ghi đè các phương thức kế thừa

Các phương thức kế thừa có thể được ghi đè bằng cách xác định lại các phương thức (sử dụng cùng tên) trong lớp con

Nhìn vào ví dụ dưới đây. Các phương thức __construct() và intro() trong lớp con (Strawberry) sẽ ghi đè lên các phương thức __construct() và intro() trong lớp cha (Fruit)

Kế thừa đa cấp trong chương trình PHP

Đăng Bởi Ajay Gupta 109861

Chia sẻ

Đa cấp và đa kế thừa trong PHP

PHP OOP không cho phép đa kế thừa, nó chỉ cho phép kế thừa đa cấp

Nói một cách đơn giản, lớp con không thể mở rộng nhiều hơn một siêu lớp
Nhưng PHP cho phép thừa kế theo thứ bậc, Thừa kế theo thứ bậc có nghĩa là con cái có thể lấy tài sản của cha mẹ và cha mẹ có thể lấy tài sản của ông bà, vì vậy theo cách này, con cái cũng có thể nhận được một số tài sản của cha mẹ chúng

Ví dụ tốt nhất về đa kế thừa trong PHP


  1. class demo
  2. {
  3. //Your class body
  4. }
  5. class demo1
  6. {
  7. //Your class body
  8. }
  9. class demo3 extends demo1 demo2
  10. {
  11. //your class body
  12. }
class demo{//Your class body}class demo1{//Your class body}class demo3 extends demo1 demo2{//your class body}

Mã trên sẽ không hoạt động trong php vì php không cho phép đa kế thừa

Ví dụ tốt nhất về kế thừa đa cấp trong PHP


  1. class grandParent
  2. {
  3. //Body of grand parent class
  4. }
  5. class parent extends grandParent
  6. {
  7. //Body Of parent class
  8. }
  9. class child extends parent
  10. {
  11. //Body of child class
  12. }
class grandParent{//Body of grand parent class}class parent extends grandParent{//Body Of parent class}class child extends parent{//Body of child class}

Ví dụ trên rất dễ hiểu, lớp con đang mở rộng lớp cha và lớp cha đang mở rộng lớp cha. Đây là một ví dụ rất cơ bản để hiểu khái niệm kế thừa đa cấp trong php rất tiếc

Ghi chú. chỉ các Giao diện hỗ trợ đa kế thừa

thẻ

PHP OOP Object Oriented Programming

bài viết liên quan

Kế thừa đa cấp trong chương trình PHP

Khái niệm cơ bản về lập trình hướng đối tượng

Kế thừa đa cấp trong chương trình PHP

PHP - Lớp và đối tượng

Kế thừa đa cấp trong chương trình PHP

PHP - khái niệm cơ bản về Đa hình

Kế thừa đa cấp trong chương trình PHP

Khái niệm Trừu tượng hóa trong PHP

Kế thừa đa cấp trong chương trình PHP

Khái niệm đóng gói trong PHP

Kế thừa đa cấp trong chương trình PHP

Constructor trong PHP với ví dụ

Kế thừa đa cấp trong chương trình PHP

Hàm hủy trong PHP

Kế thừa đa cấp trong chương trình PHP

Kế thừa trong PHP

Kế thừa đa cấp trong chương trình PHP

Khả năng hiển thị trong các lớp PHP

Kế thừa đa cấp trong chương trình PHP

Giao diện trong PHP

Kế thừa đa cấp trong chương trình PHP

Các phương thức và thuộc tính tĩnh trong PHP với ví dụ

Làm cách nào để triển khai kế thừa đa cấp trong PHP?

PHP không hỗ trợ đa kế thừa nhưng bằng cách sử dụng Giao diện trong PHP hoặc sử dụng Đặc điểm trong PHP thay vì lớp , chúng tôi có thể triển khai nó.

Kế thừa đa cấp giải thích với ví dụ phù hợp trong PHP là gì?

PHP hỗ trợ Kế thừa đa cấp. Trong kiểu thừa kế này, chúng ta sẽ có nhiều hơn 2 lớp. Trong kiểu kế thừa này, lớp cha sẽ được lớp con kế thừa thì lớp con đó sẽ được lớp con kế thừa . Kiểu kế thừa này trong ngôn ngữ PHP vẫn giống như C++, v.v.

kế thừa đa cấp giải thích với một chương trình là gì?

Kế thừa đa cấp trong java là gì? . Đây được gọi là Kế thừa đa cấp trong java. Ví dụ: lớp C mở rộng lớp B và lớp B mở rộng lớp A. occurs when a class extends a class that extends another class. This is called multilevel Inheritance in java. For example, class C extends class B, and class B extends class A.

Tại sao PHP không hỗ trợ đa kế thừa?

PHP chỉ hỗ trợ nhiều kế thừa bằng cách sử dụng các giao diện hoặc Đặc điểm trong PHP thay vì các lớp để chúng tôi có thể triển khai nó . Đặc điểm là một loại lớp cho phép nhiều lớp trường hợp, đối tượng, lớp và đặc điểm. Đặc điểm chỉ mở rộng nhiều đặc điểm cùng một lúc nhưng không thể mở rộng nhiều hơn một lớp.