当前位置:Gxlcms > PHP教程 > 子类重写父类属性的有关问题。求解惑

子类重写父类属性的有关问题。求解惑

时间:2021-07-01 10:21:17 帮助过:16人阅读

子类重写父类属性的问题。。。。求解惑

/**
* 子类重写父类方法和属性
**/
class Employer
{
protected $sal=3000;
public function getSal()
{
return $this->sal;
}

}

class Manager extends Employer
{
protected $sal=5000;
public function getParentSal()
{
return parent::getSal(); //调用父类方法 返回父类属性,为什么会是5000
}
public function getSal()
{
return $this->sal;
}
}
$manager = new Manager;
echo $manager->getParentSal().PHP_EOL;//5000 这是为什么也是5000呢,但是在5.3以下版本好像是3000,求解释????
echo $manager->getSal();//5000
?>
php 子类重写父类属性的问题

分享到:


------解决方案--------------------
为什么不呢?

5.2.10
5000 5000

5.4.20
5000 5000
------解决方案--------------------
protected 只不过是保护模式,自然还是会被子类覆盖的
------解决方案--------------------
把protected 换成 private,换成私有的就不能被重新赋值。

人气教程排行