考虑类 A 和 B,如下所示:
Class A {
public function A1 (){
$this->A2();
}
public function A2 (){}
}
Class B extends A {
public function A2 () {} // overriding A2
}
$instance= new B ();
$instance -> A1(); // Calling A1 of class B which calls the parent class A1 actually
如您所见,B 类覆盖了函数 A2。A2 从类 A 方法 A1 调用
问题是它调用 A 类中的 A2,而不是 B 类中的覆盖 A2。
如何确保如果我重写方法,即使从父类 (A) 方法调用重写方法(当实际对象是重写 (B) 类的实例时,也会调用重写方法。
我知道
这不是答案,但我想明确 OP 要求的内容,并想要格式化代码。
Class A {
public function A1() {
echo "Class A, method A1 <br />";
$this->A2();
}
public function A2() {
echo "Class A, method A2 <br />";
}
}
Class B extends A {
public function A2() {
echo "Class B, method A2 <br />";
}
// overriding A2
}
$instance = new B ();
$instance->A1();
其输出为:
Class A, method A1
Class B, method A2
致OP:你想要的输出是什么?