Hướng dẫn method overriding in php w3schools - ghi đè phương thức 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ử »



Đa hình trong trường PHP W3Schools là gì?

Đa hình về cơ bản là một mẫu OOP cho phép nhiều lớp có các chức năng khác nhau thực thi hoặc chia sẻ một điểm chung. Tính hữu ích của đa hình là mã được viết trong các lớp khác nhau không có bất kỳ ảnh hưởng nào mà lớp nó thuộc về vì chúng được sử dụng theo cùng một cách.an OOP pattern that enables numerous classes with different functionalities to execute or share a commonInterface. The usefulness of polymorphism is code written in different classes doesn't have any effect which class it belongs because they are used in the same way.

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.

Nhiều kế thừa trong PHP là gì?

Nhiều kế thừa là thuộc tính của các ngôn ngữ lập trình theo định hướng đối tượng trong đó lớp con hoặc lớp phụ có thể kế thừa các thuộc tính của nhiều lớp mẹ hoặc siêu lớp.the property of the Object Oriented Programming languages in which child class or sub class can inherit the properties of the multiple parent classes or super classes.

Một lớp con trong PHP là gì?

Phân lớp trong PHP Một khi một lớp đã được xác định, có thể tạo một lớp mới có nguồn gốc từ nó mở rộng chức năng của lớp ban đầu.Lớp cha được gọi là siêu lớp và đứa trẻ là lớp con.Toàn bộ quá trình được gọi là phân lớp.Once a class has been defined it is possible to create a new class derived from it that extends the functionality of the original class. The parent class is called the superclass and the child the subclass. The whole process is referred to as subclassing.