Kế thừa trong PHP

Chào mn! Mình đang đọc học đến kế thừa trong PHP. Mọi người giải đáp giúp mình vấn đề sau với.
Đoạn mã sau:

class BaseClass {
    private $name = "BaseClass";
    public function getName() {
        echo $this->name;
    }
}

class ChildClass extends BaseClass {
    private $name = "ChildClass";
}

$ob = new ChildClass;
echo $ob->getName(); // Kết quả: "BaseClass". Mình nghĩ nó
                     //sẽ ra "ChildClass"  vì $ob được khởi tạo từ class ChildClass.

Tuy nhiên nếu bây giờ sửa visibility của $name ở 2 class trên thì kết quả lại khác:

class BaseClass {
        public $name = "BaseClass";
        public function getName() {
            echo $this->name;
        }
    }

    class ChildClass extends BaseClass {
        public $name = "ChildClass";
    }

    $ob = new ChildClass;
    echo $ob->getName(); // Kết quả: "ChildClass".
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?