PHP: Thừa kế (Inheritance)
Thừa kế là một nguyên tắc lập trình tuyệt vời, và PHP sử dụng nguyên tắc này trong mô hình đối tượng của nó. Nguyên tắc này sẽ ảnh hưởng tới cách mà nhiều lớp và đối tượng liên quan đến nhau.
Ví dụ, khi bạn mở rộng (thừa kế) một lớp thì lớp con này thừa kế tất cả các thành phần public và protected của lớp cha. Ngoại trừ những phương thức bị ghi đè thì lớp con sẽ giữ lại nguyên gốc những chức năng của các phương thức của lớp cha.
Điều này là hữu dụng để định nghĩa và trừu tượng hóa chức năng, và cho phép bổ sung các chức năng cho đối tượng đó mà không cần phải thực hiện lại tất cả các chức năng đã được chia sẻ.
Lưu ý:
Ngoại việc sử dụng autoloading, thì các lớp phải được định nghĩa trước khi chúng được sử dụng. Nếu một lớp mở rộng từ lớp khác thì lớp cha phải được khai báo trước khi định nghĩa lớp con. Quy tắc này áp dụng cho các lớp thừa kế lớp và interface khác.
Ví dụ 1: Ví dụ về thừa kế.
<?php
class Foo
{
public function printItem($string)
{
echo 'Foo: ' . $string . PHP_EOL;
}
public function printPHP()
{
echo 'PHP is great.' . PHP_EOL;
}
}
class Bar extends Foo
{
public function printItem($string)
{
echo 'Bar: ' . $string . PHP_EOL;
}
}
$foo = new Foo();
$bar = new Bar();
$foo->printItem('baz'); // Output: 'Foo: baz'
$foo->printPHP(); // Output: 'PHP is great'
$bar->printItem('baz'); // Output: 'Bar: baz'
$bar->printPHP(); // Output: 'PHP is great'
?>