为什么可以调用到父类的私有属性$pri?
<?php
class father {
public $pub='public';
private $pri='private';
protected $pro='protected';
public function getpri(){
echo $this->pri;
echo $this->pro;
echo $this->pub;
}
}
class son extends father{
public $pub='王二';
private $pri='黄金时代';
protected $pro='沉默的大多数';
public function getpub(){
echo $this->pub.'';
echo $this->pro;
echo $this->pri;
}
}
$son=new son;
$son->getpri();
?>
因为只会继承父类所有公有的和受保护的方法和属性。除非子类覆盖了父类的方法,被继承的方法都会保留其原有功能
我们来打印一下
var_dump($son);
会发现有2个
private pri
。因为继承只会继承父类公有的和受保护的方法和属性。又因为
getpri()
没有被覆盖,所以会保留其原有功能(该方法在father
里,所以$this->pri
访问的是父类的private pri
)