mam trudności ze zrozumieniem, dlaczego mamy wyjście ten kod:Dziedziczenie i widoczność - PHP
<?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();
?>
Więc Foo rozciąga Bar. $ myfoo to pozycja klasy Foo. Foo nie ma metody zwanej test(), więc rozszerza ją z paska nadrzędnego. Ale dlaczego wynik testu() jest
Bar::testPrivate
Foo::testPublic
Czy możesz mi wyjaśnić, dlaczego najpierw nie Foo :: testPrivate, gdy metoda rodzica jest przesłonięta u dziecka?
Dziękuję bardzo z góry!