Hướng dẫn single inheritance in php w3schools - kế thừa đơn trong php w3schools


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ó.

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

Hãy xem xét một ví dụ:

Thí dụ

Tên = $ name; & nbsp; & nbsp; & nbsp; $ this-> color = $ color; & nbsp; } & nbsp; hàm công khai giới thiệu () {& nbsp; & nbsp; & nbsp; echo "quả là {$ this-> name} và màu là {$ this-> color}."; & nbsp; }}
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  public function intro() {
    echo "The fruit is {$this->name} and the color is {$this->color}.";
  }
}

// Dâu tây được thừa hưởng từ lớp dâu tây mở rộng trái cây {& nbsp; thông báo chức năng công khai () {& nbsp; & nbsp; & nbsp; Echo "Tôi là một trái cây hay một quả mọng?"; & nbsp; }} $ Strawberry = new Strawberry ("Strawberry", "Red"); $ Strawberry-> message (); $ strawberry-> intro (); ?>
class Strawberry extends Fruit {
  public function message() {
    echo "Am I a fruit or a berry? ";
  }
}
$strawberry = new Strawberry("Strawberry", "red");
$strawberry->message();
$strawberry->intro();
?>

Hãy tự mình thử »

Ví dụ giải thích

Lớp dâu tây được thừa hưởng từ lớp trái cây.

Điều này có nghĩa là lớp Strawberry có thể sử dụng các thuộc tính $ name và $ màu công khai cũng như các phương thức __construct () và intro () công khai từ lớp trái cây vì sự kế thừa.

Lớp Strawberry cũng có phương pháp riêng: message ().



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

Trong chương trước, chúng tôi đã học được rằng các thuộc tính hoặc phương thức protected có thể được truy cập trong lớp và bởi các lớp có nguồn gốc từ lớp đó. Điều đó nghĩa là gì?

Hãy xem xét một ví dụ:

Thí dụ

Tên = $ name; & nbsp; & nbsp; & nbsp; $ this-> color = $ color; & nbsp; } & nbsp; hàm công khai giới thiệu () {& nbsp; & nbsp; & nbsp; echo "quả là {$ this-> name} và màu là {$ this-> color}."; & nbsp; }}
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  protected function intro() {
    echo "The fruit is {$this->name} and the color is {$this->color}.";
  }
}

// Dâu tây được thừa hưởng từ lớp dâu tây mở rộng trái cây {& nbsp; thông báo chức năng công khai () {& nbsp; & nbsp; & nbsp; Echo "Tôi là một trái cây hay một quả mọng?"; & nbsp; }} $ Strawberry = new Strawberry ("Strawberry", "Red"); $ Strawberry-> message (); $ strawberry-> intro (); ?>
  public function message() {
    echo "Am I a fruit or a berry? ";
  }
}

Hãy tự mình thử »
$strawberry = new Strawberry("Strawberry", "red");  // OK. __construct() is public
$strawberry->message(); // OK. message() is public
$strawberry->intro(); // ERROR. intro() is protected
?>

Hãy tự mình thử »

Ví dụ giải thích

Lớp dâu tây được thừa hưởng từ lớp trái cây.

Thí dụ

Tên = $ name; & nbsp; & nbsp; & nbsp; $ this-> color = $ color; & nbsp; } & nbsp; hàm công khai giới thiệu () {& nbsp; & nbsp; & nbsp; echo "quả là {$ this-> name} và màu là {$ this-> color}."; & nbsp; }}
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  protected function intro() {
    echo "The fruit is {$this->name} and the color is {$this->color}.";
  }
}

// Dâu tây được thừa hưởng từ lớp dâu tây mở rộng trái cây {& nbsp; thông báo chức năng công khai () {& nbsp; & nbsp; & nbsp; Echo "Tôi là một trái cây hay một quả mọng?"; & nbsp; }} $ Strawberry = new Strawberry ("Strawberry", "Red"); $ Strawberry-> message (); $ strawberry-> intro (); ?>
  public function message() {
    echo "Am I a fruit or a berry? ";
    // Call protected method from within derived class - OK
    $this -> intro();
  }
}

Hãy tự mình thử »
$strawberry->message(); // OK. message() is public and it calls intro() (which is protected) from within the derived class
?>

Hãy tự mình thử »

Ví dụ giải thích


Lớp dâu tây được thừa hưởng từ lớp trái cây.

Điều này có nghĩa là lớp Strawberry có thể sử dụng các thuộc tính $ name và $ màu công khai cũng như các phương thức __construct () và intro () công khai từ lớp trái cây vì sự kế thừa.

Lớp Strawberry cũng có phương pháp riêng: message ().

Thí dụ

Tên = $ name; & nbsp; & nbsp; & nbsp; $ this-> color = $ color; & nbsp; } & nbsp; hàm công khai giới thiệu () {& nbsp; & nbsp; & nbsp; echo "quả là {$ this-> name} và màu là {$ this-> color}."; & nbsp; }}
class Fruit {
  public $name;
  public $color;
  public function __construct($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }
  public function intro() {
    echo "The fruit is {$this->name} and the color is {$this->color}.";
  }
}

// Dâu tây được thừa hưởng từ lớp dâu tây mở rộng trái cây {& nbsp; thông báo chức năng công khai () {& nbsp; & nbsp; & nbsp; Echo "Tôi là một trái cây hay một quả mọng?"; & nbsp; }} $ Strawberry = new Strawberry ("Strawberry", "Red"); $ Strawberry-> message (); $ strawberry-> intro (); ?>
  public $weight;
  public function __construct($name, $color, $weight) {
    $this->name = $name;
    $this->color = $color;
    $this->weight = $weight;
  }
  public function intro() {
    echo "The fruit is {$this->name}, the color is {$this->color}, and the weight is {$this->weight} gram.";
  }
}

Hãy tự mình thử »
$strawberry->intro();
?>

Hãy tự mình thử »


Ví dụ giải thích

Lớp dâu tây được thừa hưởng từ lớp trái cây.

Điều này có nghĩa là lớp Strawberry có thể sử dụng các thuộc tính $ name và $ màu công khai cũng như các phương thức __construct () và intro () công khai từ lớp trái cây vì sự kế thừa.

Thí dụ

Tên = $ name; & nbsp; & nbsp; & nbsp; $ this-> color = $ color; & nbsp; } & nbsp; hàm công khai giới thiệu () {& nbsp; & nbsp; & nbsp; echo "quả là {$ this-> name} và màu là {$ this-> color}."; & nbsp; }}
final class Fruit {
  // some code
}

// Dâu tây được thừa hưởng từ lớp dâu tây mở rộng trái cây {& nbsp; thông báo chức năng công khai () {& nbsp; & nbsp; & nbsp; Echo "Tôi là một trái cây hay một quả mọng?"; & nbsp; }} $ Strawberry = new Strawberry ("Strawberry", "Red"); $ Strawberry-> message (); $ strawberry-> intro (); ?>
class Strawberry extends Fruit {
  // some code
}
?>

Hãy tự mình thử »

Ví dụ giải thích

Thí dụ

Tên = $ name; & nbsp; & nbsp; & nbsp; $ this-> color = $ color; & nbsp; } & nbsp; hàm công khai giới thiệu () {& nbsp; & nbsp; & nbsp; echo "quả là {$ this-> name} và màu là {$ this-> color}."; & nbsp; }}
class Fruit {
  final public function intro() {
    // some code
  }
}

// Dâu tây được thừa hưởng từ lớp dâu tây mở rộng trái cây {& nbsp; thông báo chức năng công khai () {& nbsp; & nbsp; & nbsp; Echo "Tôi là một trái cây hay một quả mọng?"; & nbsp; }} $ Strawberry = new Strawberry ("Strawberry", "Red"); $ Strawberry-> message (); $ strawberry-> intro (); ?>
  // will result in error
  public function intro() {
    // some code
  }
}
?>

Hãy tự mình thử »



Thừa kế duy nhất trong PHP là gì?

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 như một ví dụ. Nó được gọi phổ biến như là thừa kế đơn giản.a concept in PHP in which one class can be inherited by a single class only. We need to have two classes in between this process. One is the base class (parent class), and the other a child class itself. Let's understand the same with an example. It is popularly known as simple inheritance.

Thừa kế duy nhất là gì?

Sự kế thừa trong đó một lớp dẫn xuất duy nhất được kế thừa từ một lớp cơ sở duy nhất được gọi là kế thừa duy nhất.Nó là đơn giản nhất trong số tất cả các loại kế thừa vì nó không bao gồm bất kỳ loại kết hợp thừa kế nào hoặc các cấp độ thừa kế khác nhau. is known as the Single Inheritance. It is the simplest among all the types of inheritance since it does not include any kind of inheritance combination or different levels of inheritance.

Kế thừa trong PHP với ví dụ là gì?

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 PHP hoặc thừa kế đơn?

PHP không hỗ trợ nhiều kế thừa nhưng bằng cách sử dụng các giao diện trong PHP hoặc sử dụng các đặc điểm trong PHP thay vì các lớp, chúng ta có thể thực hiện nó.Đặc điểm (sử dụng lớp cùng với các đặc điểm): Đặc điểm là một loại lớp cho phép nhiều kế thừa. but by using Interfaces in PHP or using Traits in PHP instead of classes, we can implement it. Traits (Using Class along with Traits): The trait is a type of class which enables multiple inheritance.