【发布时间】:2011-04-01 13:50:17
【问题描述】:
所以,这是我最近遇到的最后一个令人烦恼的继承问题,所以我想继续问下去。所以我将在PHP中举一个例子:
<?php
class Base
{
private $z = 4;
function GetPrivate()
{
echo $this->z;
}
}
class Derived extends Base
{
}
$b = new Base();
$d = new Derived();
$d->GetPrivate();
?>
足够简单。当我一直阅读有关继承时,解释只是“您继承了公共和受保护的成员”,仅此而已。我没有得到的是关于这个例子中的解释器如何确定什么属于什么的一些事情。
例如,在创建派生类时,我可以使用 Base 的公共函数“GetPrivate”获取基类的私有变量。但是,继承的简单定义不适用于我。我的意思是,我继承了 GetPrivate 方法,但我仍然有某种链接到私有变量,只是从属于基类的那个方法(即使 $this 指的是派生类对象)。我无法在 Derived 类中创建新函数来访问这些私有变量。
因此,解释器是否密切关注从基类继承的函数以及它们与仅对该基类可用的私有成员的可能链接?
【问题讨论】:
标签: php inheritance