У меня есть вопрос о том, как отображается вывод.
<?php
class Base
{
private $privattrib = "Private Attribute1";
function GetAttrib()
{
echo $this->privattrib;
}
}
class Derived extends Base
{
private $privattrib = "bute";
function GetAttrib()
{
parent::GetAttrib();
}
}
$b = new Base();
$d = new Derived();
$d->GetAttrib();
?>
Итак, для кода выше у меня есть пара вопросов:
Когда я вызываю parent :: GetAttrib (), становится ли значение $ this (в методе GetAttrib () Base) объектом Base или все еще является производным объектом?
Выход «Private Attribute1». Если $ this относится к производному объекту, разве отображение не должно быть «bute», так как закрытый атрибут переопределяется в базовом классе?
Если я изменю оба privaattrib на public, вывод будет "bute". Почему это?