Мне трудно понять, почему мы получаем вывод этого кода:
<?php
class Bar
{
public function test() {
$this->testPrivate();
$this->testPublic();
}
public function testPublic() {
echo "Bar::testPublic\n";
}
private function testPrivate() {
echo "Bar::testPrivate\n";
}
}
class Foo extends Bar
{
public function testPublic() {
echo "Foo::testPublic\n";
}
private function testPrivate() {
echo "Foo::testPrivate\n";
}
}
$myFoo = new foo();
$myFoo->test();
?>
Итак, Foo расширяет Bar. $myfoo является предметом класса Foo. Foo не имеет метода, называемого test(), поэтому он расширяет его из своей родительской панели. Но почему результат test() -
Bar::testPrivate
Foo::testPublic
Не могли бы вы объяснить мне, почему первый не Foo:: testPrivate, когда этот родительский метод переопределен в дочернем?
Спасибо вам заблаговременно!