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

Hx_Moon_ 2013-11-12 01:08:20

<?php
/**
* 子类重写父类方法和属性
**/
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
?>
...全文
347 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
_HUA_ 2013-11-12
  • 打赏
  • 举报
回复
把protected 换成 private,换成私有的就不能被重新赋值。
xuzuning 2013-11-12
  • 打赏
  • 举报
回复
protected 只不过是保护模式,自然还是会被子类覆盖的
Hx_Moon_ 2013-11-12
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
为什么不呢? 5.2.10 5000 5000 5.4.20 5000 5000
版主可以详细说明下吗?为什么我用parent::访问的父类的属性,怎么读的是子类的属性呢?如果是重写,是怎么个重写法呢?
xuzuning 2013-11-12
  • 打赏
  • 举报
回复
为什么不呢? 5.2.10 5000 5000 5.4.20 5000 5000

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧