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

为什么把父类的$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(); 
?> 
慕妹3146593
浏览 668回答 1
1回答

HUH函数

父类 $sal为public时,子类继承的时候将其覆盖,结果为5000父类 $sal为private时,子类没有继承,而是相当于添加了属性$sal,在调用parent::getSal()时返回的是父类的私有属性$sal的值,3000并且 子类的重写的属性的访问权限不能小于父类
打开App,查看更多内容
随时随地看视频慕课网APP