让我们记住这两个漂亮的类!
class Bar
{
public function test() {
echo "<br>";
$this->testPrivate();
$this->testPublic();
}
public function testPublic() {
echo "Bar::testPublicn";
}
private function testPrivate() {
echo "Bar::testPrivaten";
}
public function ShowBar() {
$this->testPrivate();
}
}
class Foo extends Bar
{
public function testPublic() {
echo "Foo::testPublicn";
}
private function testPrivate() {
echo "Foo::testPrivaten";
}
public function ShowFoo() {
$this->testPrivate();
}
}
$myFoo = new Foo();
$myFoo->test();
echo "<br>";
$myFoo->ShowBar();
echo "<br>";
$myFoo->ShowFoo();
有没有人愿意解释一下产出值是什么,为什么?
我注意到了这段代码...它输出"Bar::testPrivatenFoo::testPublicn"!为什么?看到这个输出,我是怎么想的?公共方法会被重载,私有方法不会被重载。
好的,我期望ShowBar()会输出"Bar::testPrivaten“,它会输出"Bar::testPublicn",很好。
好的,我期望ShowFoo()会输出"Bar::testPrivaten“,但实际上输出的是"Foo::testPublicn”。嗯,为什么?
https://stackoverflow.com/questions/52154212
复制相似问题