<?php
class A {
private function foo(){
echo 1;
}
public function test(){
$this->foo();
}
}
class B extends A{
public function foo(){
echo 0;
}
}
$b = new B();
echo $b->test();
B类继承自A类,为什么输出结果是1而不是0?
最佳答案
因为私有(private)方法不能被重写。因此,当在类 B 中再次定义 A.foo
时,其范围不同,A.test
只能看到 A.foo
关于PHP类的继承和重写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49292083/