为什么把父类的$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
并且 子类的重写的属性的访问权限不能小于父类
- 1 回答
- 0 关注
- 667 浏览
添加回答
举报
0/150
提交
取消