>想象一下我有一个这样的类
class MyClass {
private function func1() {
// Much code
func2();
// Much code
}
private function func2() {
echo 'old class';
}
}
是否可以扩展这个类并替换函数 func2(),以便在新类中,func1() 将使用新的 func2()。喜欢这个:
class MyNewClass extends MyClass {
private function func2() {
echo 'new class';
}
}
但是我描述的方法仍然会呼应MyNewClass的"旧类",但是如何替换父函数呢?
听起来你仍然想从旧类运行 func2,但在新类的 func2 中运行更多代码。为此,只需在新类函数中调用父级。这样:
private function func2() {
echo 'new class';
parent::func2();
}
如前所述,请使用公共或受保护。两个修饰符之间的区别可以在这里找到
class MyClass {
public function func1() {
// Much code
func2();
// Much code
}
public function func2() {
echo 'old class';
}
}
class MyNewClass extends MyClass {
private function func2() {
echo 'new class';
}
}