php私有继承,php继承及私有属性访问问题

博客探讨了子类ChildClass继承父类FatherClass时,对私有属性的理解。虽然父类私有属性不可直接访问,但子类能访问其protected属性。解释了这是由于子类继承了父类的成员方法,但访问私有属性的限制在于仅限于自身类的私有属性。
摘要由CSDN通过智能技术生成

class FatherClass{    // private $salary = 1000;

private $salary = 1000;    public function showInfo()

{        echo $this->phone . '
';        echo $this->salary . '
';

}

}class ChildClass extends FatherClass{    protected $phone = '13987654321';    private $salary = 20000;

}

$child = new ChildClass();

$child->showInfo();echo '

';

print_r($child);

输出:139876543211000ChildClass Object

(

[phone:protected] => 13987654321

[salary:ChildClass:private] => 20000

[salary:FatherClass:private] => 1000)

疑问:

child实例现在有两个私有属性,我可以理解为成员方法在哪个类中,私有属性就调用哪个类的

那么如果注释掉父类中的 private $salary = 1000; 结果就会报错:

Cannot access private property ChildClass::$salary····

不能访问 ChildClass 类的私有属性,我也可以理解,因为父类相对子类是类外,不能访问私有属性

那么 protected 的属性也在类外,怎么又能访问了呢?

如果理解为 子类继承了父类的成员方法,所以访问到了子类的 protected 属性,那为什么又不能访问子类的私有属性呢?

还是说:私有属性是区分类的(从打印结果看出),访问私有属性时,只访问本类中的私有属性,而访问public和protected的属性,则根据对象实例具体的值决定?

谢谢诸位,不知道我的描述清楚不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值