php类继承的问题

class A
{
    public function run()
    {
        $this->say();
    }
}

class B extends A
{
    protected function say()
    {
        echo 'B-say';
    }
}

$b = new B();
$b->run();
//结果 输出B-say

如果把say换成private就不行了

报错 PHP Fatal error: Call to private method B::say() from context 'A'

意思是A访问不了B的私有方法。那为什么protected就行呢,protected不应该也不行的吗?A是B的父类并不是子类。

查看回复