Hướng dẫn is multilevel inheritance possible in php? - có thể kế thừa đa cấp trong php không?

Suy nghĩ ban đầu của tôi là điều này có thể không tốt cho thừa kế nhưng sau khi thử nghiệm, có vẻ như ổn. Tuy nhiên, có những phương tiện khác để hoàn thành điều này mà bạn có thể nhận thức được.

Các lớp hoặc giao diện trừu tượng có thể có ý nghĩa.

Các lớp trừu tượng cũng giống như các lớp khác nhưng chúng không thể được khởi tạo. Ngoài ra còn có các phương pháp trừu tượng phải được thực hiện bởi các lớp cụ thể.

abstract class A {
    //You can also have abstract methods
    abstract public function doFoo();
    abstract public function doBar($when);

    //Also implemented method which when
    //called unless overridden will use this logic
    public function sayHi(){
        echo "hi";
    }
}

Bây giờ lớp này có thể chọn thực hiện các phương thức trừu tượng hoặc không thêm bất kỳ logic nào cần thiết cho nó.

abstract class B extends A {
    public function doFoo(){
        //Some code
    }
    abstract public function doFooBar();
    public function sayBye(){
        echo "bye";
    }
}

Đây là một lớp cụ thể và tất cả các phương thức trừu tượng phải được thực hiện ở đây nếu chưa có các phương thức được triển khai có thể được ghi đè một lần nữa.

class C extends B {
    public function doFoo(){
        //Some different code
    }
    public function doBar($when){
        //Some code
    }
    public function doFooBar(){
        //Some code
    }

    //do not need sayHi() and  sayBye() but they will be available.
}

Giao diện một cách đơn giản và thô là một túi các phương pháp. Bạn chỉ đơn giản là nói với nhà phát triển nếu bạn sẽ sử dụng thực hiện này. Các phương pháp này không được tuyên bố là trừu tượng nhưng không thể được thực hiện trong giao diện.

interface iA {
    public function doFoo();
    public function doBar();
}

Một giao diện có thể được mở rộng bởi giao diện khác, chỉ cần thêm nhiều phương thức vào giao diện

interface iB extends iA {
    public function doFooBar();
}

interface iC {
    public function doAnything();
}

Và được thực hiện bởi các lớp học

class A implements iA{
    public function doFoo(){
        //Some Code
    }
    public function doBar(){
        //Some Code
    }
}

class B implements iB{
    public function doFoo(){
        //Some Code
    }
    public function doBar(){
        //Some Code
    }
    public function doFooBar(){
        //Some Code
    }   
}

Ưu điểm bổ sung của các giao diện là một lớp hoặc bản tóm tắt có thể triển khai nhiều hơn một

abstract class C implements iA, iC {
    public function doFoo(){
        //Some Code
    }
}

class D extends C {
    //get doFoo() from C implementation and must implement the remaining...
    public function doBar(){
        //Some Code
    }
    public function doAnything(){
        //Some Code
    }
}

Hướng dẫn is multilevel inheritance possible in php? - có thể kế thừa đa cấp trong php không?

Giới thiệu về thừa kế trong PHP

Kế thừa & nbsp; là cách mở rộng chức năng lớp hiện có trong lớp mới được tạo. Chúng tôi cũng có thể thêm một số chức năng bổ sung cho lớp mới được tạo ngoài việc mở rộng các chức năng lớp cơ sở. Khi chúng ta thừa hưởng một lớp, chúng ta nói một lớp kế thừa là một lớp con (lớp phụ) và từ đó chúng ta thừa hưởng được gọi là lớp cha. Lớp cha còn được gọi là lớp cơ sở. Đây là cách cho phép quản lý tốt hơn mã lập trình và khả năng tái sử dụng mã. Ý tưởng đằng sau việc sử dụng kế thừa là tất cả về quản lý tốt hơn của mã và khả năng tái sử dụng mã. Trong chủ đề này, chúng ta sẽ tìm hiểu về & nbsp; kế thừa trong PHP.

Các loại kế thừa trong PHP

PHP hỗ trợ các loại kế thừa khác nhau như Java. Bảng dưới đây hiển thị danh sách các loại kế thừa và trạng thái hỗ trợ trong PHP.

Loại kế thừa Hỗ trợ trong PHP
Thừa kế duy nhấtVÂNG
Thừa kế đa cấpVÂNG
Thừa kế đa cấpVÂNG
Thừa kế đa cấpDi truyền phân cấp

Nhiều kế thừa

KHÔNG

Hướng dẫn is multilevel inheritance possible in php? - có thể kế thừa đa cấp trong php không?

Code:

fist_name;
}
function set_fist_name($set_this){
$this->fist_name = $set_this;
}
}
class child extends MyAccess {
function setVal($set_this){
$this->fist_name = $set_this;
}
function getVal(){
echo $this->fist_name;
}
}
$obj1 = new child();
$obj1->setVal("Jai Shre");
$obj1->getVal();
?>

1. Kế thừa duy nhất

Output:

Hướng dẫn is multilevel inheritance possible in php? - có thể kế thừa đa cấp trong php không?

PHP hỗ trợ thừa kế đơn. Di truyền đơn là một khái niệm trong PHP trong đó một lớp chỉ có thể được kế thừa bởi một lớp duy nhất. Chúng ta cần phải có hai lớp ở giữa quá trình này. Một là lớp cơ sở (lớp cha) và chính một lớp con. Hãy để hiểu giống nhau với một ví dụ. Nó được gọi phổ biến là kế thừa đơn giản. & NBSP; Loại kế thừa này trong ngôn ngữ PHP vẫn giống như Java, C ++, v.v.

MyAccess là cha mẹ, và đứa trẻ là tên của lớp con.

Hướng dẫn is multilevel inheritance possible in php? - có thể kế thừa đa cấp trong php không?

Code:

fist_name;
}
function set_fist_name($set_this){
$this->fist_name = $set_this;
}
}
class child_1 extends ParentClass {
function setVal($set_this){
$this->fist_name = $set_this;
}
function getVal(){
echo "Extended By Parent Class -". $this->fist_name;
}
}
class child_2 extends child_1 {
function setVal($set_this){
$this->fist_name = $set_this;
}
function getVal(){
echo "Extended By child 1  - ".$this->fist_name;
}
}
$obj1 = new child_1();
$obj1->setVal("This is first inherited class");
$obj1->getVal();
echo "

"; $obj2 = new child_2(); $obj2->setVal("This is second inherited class"); $obj2->getVal(); ?>

Output:

Hướng dẫn is multilevel inheritance possible in php? - có thể kế thừa đa cấp trong php không?

2. Di truyền đa cấp

PHP hỗ trợ kế thừa đa cấp. Trong loại kế thừa này, chúng ta sẽ có hơn 2 lớp. Trong loại kế thừa này, một lớp cha mẹ sẽ được di truyền bởi một lớp con sau đó lớp con đó sẽ được kế thừa bởi lớp con. Loại kế thừa này trong ngôn ngữ PHP vẫn giống như C ++, v.v.

Hướng dẫn is multilevel inheritance possible in php? - có thể kế thừa đa cấp trong php không?

Code:

fist_name;
}
function set_fist_name($set_this){
$this->fist_name = $set_this;
}
}
class child_1 extends ParentClass {
function setVal($set_this){
$this->fist_name = $set_this;
}
function getVal(){
echo $this->fist_name;
}
}
class child_2 extends ParentClass {
function setVal($set_this){
$this->fist_name = $set_this." - ".$set_this;;
}
function getVal(){
echo $this->fist_name;
}
}
$obj1 = new child_1();
$obj1->setVal("This is first child class");
$obj1->getVal();
echo "

"; $obj2 = new child_2(); $obj2->setVal("This is second child class"); $obj2->getVal(); ?>

Output:

Hướng dẫn is multilevel inheritance possible in php? - có thể kế thừa đa cấp trong php không?

3. Kế thừa phân cấp

PHP hỗ trợ kế thừa phân cấp. Di truyền phân cấp là loại kế thừa trong đó một chương trình bao gồm một phụ huynh đơn lẻ và nhiều hơn một lớp con. Hãy để hiểu giống nhau với ví dụ này. Loại kế thừa này trong ngôn ngữ PHP vẫn giống như Java, C ++, v.v.

Chúng tôi có một lớp cha có tên ParentClass và hai lớp con, Child_1 và Child_2, tương ứng. & NBSP; Kịch bản đã cho của thừa kế được gọi là thừa kế phân cấp.

  • Tầm quan trọng của việc thừa kế trong PHP
  • Tầm quan trọng của việc thừa kế là nhiều hơn nữa khi nó đưa ra những lợi thế rất lớn với nó.
  • Khả năng tái sử dụng mã là một trong những điều được sử dụng thường xuyên nhất trong kế thừa; lớp cơ sở & nbsp; vẫn còn như ở giữa quá trình. Như chúng ta có thể thấy trong ví dụ trên của tất cả các kế thừa, mã đang được sử dụng lại từ lớp này sang lớp khác. Chúng ta không cần phải viết lại điều tương tự nhiều lần.
  • Một lớp cơ sở có thể được sử dụng bởi một số lớp dẫn xuất của nó trong hệ thống phân cấp lớp. Vâng, đây là một loại kế thừa trong đó chúng ta có thể mở rộng trong lớp cha với nhiều kế thừa.
  • Khả năng mở rộng là một trong những lợi thế của kế thừa trong đó chúng ta có thể mở rộng tính năng lớp cơ sở mà không thực hiện ít hoặc không có thay đổi để đáp ứng các yêu cầu kinh doanh. Giả sử ban đầu, chúng ta chỉ đi với một lớp phụ huynh không có lớp con. Nhưng trong trường hợp cần thiết, chúng ta có thể thêm lớp trẻ em để đáp ứng nhu cầu kinh doanh của chúng ta sau này.
  • Ghi đè là một lợi thế khác của tính năng kế thừa này, trong đó chúng ta có thể viết lại định nghĩa của hàm lớp cơ sở vào lớp dẫn xuất để thực hiện các thay đổi theo yêu cầu của doanh nghiệp.
  • Ít hơn số lượng mã - trong khi đó, chúng ta sẽ có ít mã hơn trong khi tiến lên phía trước với sự kế thừa so với cách mã hóa truyền thống.

Kế thừa cũng cho phép các tính năng ẩn dữ liệu. Chúng ta có thể phơi bày phần duy nhất được yêu cầu của lớp cha cho lớp con bằng cách sử dụng các sửa đổi truy cập PHP khác nhau.

Hỗ trợ đầy đủ MVC - Chúng tôi có thể tham gia MVC bằng cách sử dụng khái niệm thừa kế.

Bài viết đề xuất

Đây là một hướng dẫn để thừa kế trong PHP. Ở đây chúng tôi thảo luận về các loại kế thừa trong PHP, tức là đơn, đa cấp, phân cấp với mã mẫu thích hợp. Bạn cũng có thể xem bài viết sau đây để tìm hiểu thêm -

  1. Quá tải trong PHP
  2. Di truyền duy nhất trong Python
  3. Di sản đa cấp trong Java
  4. Nhiều kế thừa trong C ++

Có bao nhiêu loại thừa kế có thể trong PHP?

Kế thừa có ba loại, thừa kế đơn, đa và đa cấp. PHP chỉ hỗ trợ thừa kế đơn, trong đó chỉ có một lớp có thể được lấy từ lớp cha đơn. Chúng ta có thể mô phỏng nhiều kế thừa bằng cách sử dụng các giao diện.three types, single, multiple and multilevel Inheritance. PHP supports only single inheritance, where only one class can be derived from single parent class. We can simulate multiple inheritance by using interfaces.

Là nhiều kế thừa là có thể?

Ngôn ngữ lập trình Java hỗ trợ nhiều loại kế thừa, là khả năng của một lớp để thực hiện nhiều hơn một giao diện.Một đối tượng có thể có nhiều loại: loại lớp riêng và các loại của tất cả các giao diện mà lớp thực hiện., which is the ability of a class to implement more than one interface. An object can have multiple types: the type of its own class and the types of all the interfaces that the class implements.

Việc thừa kế nào được sử dụng trong PHP?

PHP - thừa kế là gì?Kế thừa trong OOP = khi một lớp xuất phát từ một lớp khác.Lớp con sẽ kế thừa tất cả các thuộc tính và phương thức được bảo vệ và công khai từ lớp cha.Ngoài ra, nó có thể có các thuộc tính và phương pháp riêng của nó.When a class derives from another class. The child class will inherit all the public and protected properties and methods from the parent class. In addition, it can have its own properties and methods.

Là nhiều kế thừa có thể trong OOPS?

Nhiều kế thừa là một tính năng của một số ngôn ngữ lập trình máy tính hướng đối tượng trong đó một đối tượng hoặc lớp có thể kế thừa các tính năng từ nhiều đối tượng cha mẹ hoặc lớp cha. in which an object or class can inherit features from more than one parent object or parent class.