为了账号安全,请及时绑定邮箱和手机立即绑定

父类的属性被子类重写了吗??

父类的属性被子类重写了吗??

PHP
慕妹3146593 2019-03-13 16:54:25
为什么把父类的$sal改成public或者private会导致结果不一样呢?子类里面调用父类的getSal()后不是直接就return了吗? 不跟子类的$sal发生关系吧 为什么得到的结果是5000呢 有点想不明白这个过程 大家能给解释一下吗?(我用手机发的贴 格式看起来可能有点乱 见谅) <?php class employee { public $sal=3000; public function getSal(){ return $this->sal; } } class Manager extends employee { protected $sal=5000; public function getParentSal() { return parent::getSal(); } } $manager = new Manager(); echo "PHP ".phpversion()."<br>"; echo $manager->getSal(); echo "<br>"; echo "parent's \$sal ".$manager->getParentSal(); ?>
查看完整描述

1 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

父类 $sal为public时,子类继承的时候将其覆盖,结果为5000
父类 $sal为private时,子类没有继承,而是相当于添加了属性$sal,在调用parent::getSal()时返回的是父类的私有属性$sal的值,3000
并且 子类的重写的属性的访问权限不能小于父类

查看完整回答
反对 回复 2019-03-18
  • 1 回答
  • 0 关注
  • 667 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信