Я не понял, почему первый вывод кода печатает «bar :: testprivate», так как мы называем метод испытаний родительского класса с использованием экземпляра подкласса. Следует вызовать метод тестового процесса суб -класса, следовательно, печатает «foo :: testprivate», а не «bar :: testprivate». < /p>
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(); // Bar::testPrivate
// Foo::testPublic
Подробнее здесь: https://stackoverflow.com/questions/196 ... -in-the-su
Почему частный метод родителя называется, когда метод также существует в подклассе? ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Ломбок не наследуется от родителя-родителя Spring-Boot-Starter [дубликат]
Anonymous » » в форуме JAVA - 0 Ответы
- 39 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как сделать мой `
` соответствовать ширине своего родителя, не затрагивая родителя
Anonymous » » в форуме CSS - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-