Hai trường hợp khi gọi constructor cha:
Trường hợp 1: Lớp con tự định nghĩa constructor
Phải gọi tường minh parent::__construct() bên trong constructor con.
<?php
class Grandpa {
public function __construct() {
echo "Tôi ở Tutorials Point\n";
}
}
class Papa extends Grandpa {
public function __construct() {
parent::__construct(); // gọi constructor cha
echo "Tôi không ở Tutorials Point";
}
}
$obj = new Papa();
?>
Kết quả
Tôi ở Tutorials Point
Tôi không ở Tutorials Point
Trường hợp 2: Lớp con KHÔNG định nghĩa constructor
Constructor cha được kế thừa tự động (nếu không private).
<?php
class Grandpa {
public function __construct() {
echo "Tôi ở Tutorials Point";
}
}
class Papa extends Grandpa {
// không có constructor
}
$obj = new Papa(); // tự động gọi Grandpa::__construct()
?>
Kết quả
Tôi ở Tutorials Point