程序小改动了一下
<?phpclass A { private $a = "123"; public function gg() {
echo $this->a . '<br />';
echo $this->b;
}}class B extends A { public $a = "456";
private $b = 'b'; public function gg() {
echo $this->a . '<br />';
parent::gg();
}}$b = new B();
$b->gg();楼主把配置的display errors打开,运行这个代码或许就能看出端倪了
<?phpclass A { private $a = "123"; public function gg() {
echo $this->a . '<br />';
echo $this->b;
}}class B extends A { public $a = "456";
private $b = 'b'; public function gg() {
echo $this->a . '<br />';
parent::gg();
}}$b = new B();
$b->gg();楼主把配置的display errors打开,运行这个代码或许就能看出端倪了
第二段代码 是public $a 所以子类可以访问 子类赋值$a=456 由于父类中有a属性 并且是公共的 所以覆盖了a属性!
private 子類不會覆蓋父類。第一個例子,因為子類的$a 不能覆蓋父類的$a,所以獲取父類的$a = 123
第二個例子,子類的$a覆蓋了父類的$a,所以獲取父類的$a=456