name}seating.";}}classDogextendsAnimal{public$breed;publicfunctionbark(){echo"{$this->name}isbarking. ";}}$dog=newD"/> name}seating.";}}classDogextendsAnimal{public$breed;publicfunctionbark(){echo"{$this->name}isbarking. ";}}$dog=newD">
Rumah > Artikel > pembangunan bahagian belakang > Bina kod yang lebih berkuasa dan lebih elegan dengan pewarisan PHP dan polimorfisme
class Animal { public $name; public $age; public function eat() { echo "{$this->name} is eating."; } } class Dog extends Animal { public $breed; public function bark() { echo "{$this->name} is barking."; } } $dog = new Dog(); $dog->name = "Fido"; $dog->age = 3; $dog->breed = "Golden Retriever"; $dog->eat(); // "Fido is eating." $dog->bark(); // "Fido is barking."Dalam contoh ini,
. Dog
类继承了 Animal
类,因此它具有 Animal
类的所有属性和方法。此外,Dog
类还具有自己的属性和方法,例如 breed
和 bark()
class Animal { public $name; public $age; public function eat() { echo "{$this->name} is eating."; } } class Dog extends Animal { public $breed; public function eat() { echo "{$this->name} is eating dog food."; } public function bark() { echo "{$this->name} is barking."; } } class Cat extends Animal { public $breed; public function eat() { echo "{$this->name} is eating cat food."; } public function meow() { echo "{$this->name} is meowing."; } } $animals = array( new Dog(), new Cat() ); foreach ($animals as $animal) { $animal->eat(); // "Fido is eating dog food." or "Kitty is eating cat food." }
Dalam contoh ini,
kaedah supaya mereka berkelakuan berbeza bergantung pada jenis mereka.
Animal
类具有一个 eat()
方法,而 Dog
和 Cat
类都继承了这个方法。然而,Dog
和 Cat
类都覆盖了 eat()
3. Kelebihan pewarisan dan polimorfisme
yang berkuasa dalam pengaturcaraan berorientasikan objek yang boleh membantu anda membina lebih berkuasa, lebih elegan dan lebih mudah untuk mengekalkan kod.
Atas ialah kandungan terperinci Bina kod yang lebih berkuasa dan lebih elegan dengan pewarisan PHP dan polimorfisme. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!