2 qq 30652259 qq_30652259 于 2016.02.08 17:53 提问

php继承的问题 为什么能访问到父类的私有属性

<?php
class Person{
private $name;
private $age;

    public function __construct($name,$age){
        $this->name = $name;
        $this->age = $age;
    }

    public function show(){
        echo $this->name."||".$this->age;
    }
}

class Child extends Person{

}

$child = new Child("aaa",5);
$child->show();

?>

为什么会打印出 aaa||5

子类不是应该继承了父类的show()方法,然后父类方法中的$this不是应该指的是子类的对象实例吗
但是子类继承的时候应该没有继承到父类的private成员属性

所以为什么能打印出东西???

1个回答

caozhy
caozhy   Ds   Rxr 2016.02.09 06:57

因为你根本就是在父类调用的。派生类继承父类,父类定义好好的方法(父类编写者也不知道自己的类会不会被人继承)因为使用了一个私有成员而没法用了,那才叫ridiculous

如果是

 class Child extends Person{
    public function show(){
        echo $this->name."||".$this->age;
    }
}

基类的show删除,那就访问不了了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!