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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
在继承中,父类的私有也会被继承,但是子类不可以直接访问,但是可以间接的访问
结果为10
PHP中Private私有属性继承使用的问题
类中的私有属性或者方法是bune
java中父类的私有属性能不能被继承
首先来讲一下,变量与属性的区别。 成员变量有多种访问控制符:private、protected、public。通常是设为private,然后为其提供setter/getter方法。外界通过set和get方法对成员变量进行操作。 这样对外界来说,只有能够访问到的成员变量才算是属性。 特别注意一点:对于成员变量的命名要求是全部小写。否则,在setter/getter之后,属性和成员变量名
子类是否可以继承父类的私有属性和方法?
举例: public class Employee { private String name; private double salary = 15000.00; private Date birthDate; public Employee(String n, Date Dob) { name = n; birthDate = Dob; } public Employ
Java中子类继承了父类的私有属性及方法吗?
最近学习继承,从书中看到子类继承父类,子类拥有父类所有的属性和方法,于是使用程序去验证,发现父类的私有属性和私有方法,子类是不能访问的,当然一些父类的私有属性可能可以通过相应的方法访问到,但是私有的方法似乎不能简单的访问,这里暂不考虑Java反射机制,于是我分析,子类不能继承父类私有的属性及方法,但是分析了内存后,我发现我是错的,在一个子类被创建的时候,首先会在内存中创建一个父类对象,然后在父类对
子类会继承父类的私有方法和私有属性,只是不能直接访问
假设父类有私有变量 int a 和公共方法 int getA(),方法中访问了变量 {return a;}。子类继承的方法在被调用时,需要传入子类对象引用,就是this,因为方法内部实际上是 {return this.a;}。方法是通过对象引用来获取变量,如果没有继承,那么子类的this里面就没有这个a了。同理,公共方法getA()内部可能调用父类的私有方法setFlag(),只是在子类内部,不能
JAVA中子类能不能继承父类的私有属性和方法?
原文链接:http://zhidao.bd.com/link?url=cMR26z-vravv8VS9L5TIxi0XNVJ9Y14VHcAztSSTF3XBSVsQPAO9VJo4oanCxCK_tEgWHR4UbDsbYmuYmDUCdq 最近学习继承,从书中看到子类继承父类,子类拥有父类所有的属性和方法,于是使用程序去验证,发现父类的私有属性和私有方法,子类是不能访问的,当然一些父类的私有
python_小白的修炼笔记_2018/1/5_私有属性可以继承的困惑
python私有属性可以继承
java 子类有没有继承父类的私有属性和私有方法呢 [
java 子类有没有继承父类的私有属性和私有方法呢 [问题点数:20分]             不显示删除回复           显示所有回复            显示星级回复           显示得分回复            只显示楼主          收藏 关注 zengchen73 路上走着 本版等级:
python3中类的重点与难点:类继承中的私有属性和私有方法
私有属性和私有方法是类独自私有的,不能在外面直接调用,但是可以使用类中的实例方法(普通方法)间接调用。但是在继承中又会怎么样呢?在继承中,如果调用的是继承父类的公有方法,可以在公有方法中访问父类中的私有属性和私有方法;但是如果子类中实现了一个公有方法,那么这个方法是不能够调用继承父类中的私有方法和私有属性。打个比方:你父亲的那个家庭是一个父类(A类),你自己的一个家庭是一个子类(B类),在继承的时...