<?php
class A {
private function foo() {
echo "baf!<br/>";
}
public function test() {
$this->foo();
}
}
class C extends A {
private function foo() {
echo "bar!<br/>";
}
}
$c = new C();
$c->test(); //Prints baf!
?>
Wie man c->test()
zum Drucken bar machen! ? Ich habe erwartet, dass foo()
in C
übersteuert wird und bar drucken würde! Kann mir das jemand erklären?PHP inherience Methode Referenzierung
'foo' von C kann privat sein, oder? – prakharsingh95
@ prakharsingh95 Nein, es muss auch "geschützt" sein wie in der Klasse 'A'. –
@ pracharsingh95 Eigenschaft und Methoden können höhere Sichtbarkeit oder die gleiche Sichtbarkeit in vererbten Klasse sein, aber es kann nicht weniger Sichtbarkeit sein. sonst wird es fatalen Fehler zeigen – varuog