直接看代码
class A {
public function foo () {
echo "A foo" ;
}
public function test () {
$this -> foo ();
}
}
class C extends A {
public function foo () {
echo "C foo";
}
}
$c = new C ();
$c -> test ();
上面这种情况输出: C foo,这个能理解,但是下面这种情况就不知道怎么回事了。
class A {
private function foo () {
echo "A foo" ;
}
public function test () {
$this -> foo ();
}
}
class C extends A {
public function foo () {
echo "C foo";
}
}
$c = new C ();
$c -> test ();
输出:A foo。为什么,把A类中的foo方法改成private后不应该还是输出C foo么?
私有方法不能被继承,覆盖