<?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成员属性
所以为什么能打印出东西???
因为你根本就是在父类调用的。派生类继承父类,父类定义好好的方法(父类编写者也不知道自己的类会不会被人继承)因为使用了一个私有成员而没法用了,那才叫ridiculous
如果是
class Child extends Person{
public function show(){
echo $this->name."||".$this->age;
}
}
基类的show删除,那就访问不了了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。