关于继承的一点疑惑,希望大家可以帮帮忙!
class f {
private $str = "123";
public function fun() {
echo $this->str;
}
}
class s extends f {
public $str = "abc";
}
$s = new s();
$s->fun();
输出:123
class f {
public $str = "123";
public function fun() {
echo $this->str;
}
}
class s extends f {
public $str = "abc";
}
$s = new s();
$s->fun();
输出:abc
第一个的输出很疑惑,为什么会输出父类的属性值?麻烦大家给我分析分析内存,有图说明更好,谢谢大家了。
[解决办法]
私有属性不会被继承
私有属性只能用定义它的类的方法访问
[解决办法]
刚才百度了一下,明白了 嘿嘿 你看下 这句话
如果父类有私有的属性。那么父类的方法只为父类的私有属性服务。