qq_30652259 2016-02-08 09:53 采纳率: 0%
浏览 1483

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条回答 默认 最新

  • threenewbee 2016-02-08 22:57
    关注

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

    如果是

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

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

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!