class A
{
public function x()
{
echo "Public function in class A<br />";
}
private function y()
{
echo "Private function in class A<br />";
}
public function expose()
{
$this->x();
$this->y();
}
}
class B extends A
{
public function x()
{
echo "Public function in class B<br />";
}
private function y()
{
echo "Private function in class B<br />";
}
}
$y = new A;
$y->expose();
$z = new B;
$z->expose();
Создание экземпляра класса A приводит к следующему результату: «Общая функция в классе A. Частная функция в классе A».
Создание экземпляра класса B приводит к следующему результату: «Общая функция в классе B. Частная функция в классе A».
кто-нибудь может объяснить результат создания экземпляра класса B? Разве он не должен вызывать частный метод "B", а не родительский метод класса A?