开发者社区> 问答> 正文

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成员属性
所以为什么能打印出东西???

展开
收起
小旋风柴进 2016-03-10 08:59:16 2224 0
1 条回答
写回答
取消 提交回答
  • 因为你根本就是在父类调用的。派生类继承父类,父类定义好好的方法(父类编写者也不知道自己的类会不会被人继承)因为使用了一个私有成员而没法用了,那才叫ridiculous

    如果是

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

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

    2019-07-17 18:56:44
    赞同 展开评论 打赏
问答分类:
PHP
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-直面PHP微服务架构挑战-高驰涛 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载