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的父类并不是子类。
自己找到问题所在了。父类可以访问子类 protected 受保护的方法