Tính đa hình - OOP PHP

Tính đa hình (polymorphism) trong lập trình hướng đối tượng cho phép các lớp con có thể viết lại (override) các thuộc tính hoặc phương thức từ lớp cha.

 

Trong ví dụ dưới đây lớp Student kế thừa lớp Person nhưng sau đó viết lại (override) thuộc tính $job:

class Person {
    public $job = 'Unknown';
}

class Student extends Person {
    public $job = 'Student';
}

$peter = new Person();

echo $peter->job;

$mary = new Student;
echo $mary->job;

 

Tính đa hình cũng được sử dụng để viết lại phương thức thừa kế từ lớp cha:

class Animal {
    public function talk() {
        echo "An animal";
    }
}

class Dog extends Animal {
    public function talk() {
        echo "Woof";
    }
}

$animal = new Animal();
$animal->talk();

$dog = new Dog();
echo $dog->talk();