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删除,那就访问不了了。

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘