在我的PHP代码中,我在一个抽象类中有一个受保护的方法,我们将其称为类A。如果我创建一个名为B的新类,它扩展了A,我必须简单地在B中声明它是公共的,还是我必须重写所有的实现,这样当我实例化B时,我就可以调用这个方法了?
abstract class A {
protected function test() {
//do some stuff here
}
}
class B extends A {
public function test() {
//Do I need to do something here?
}
}
谢谢你Crouz
您需要执行父::test()
调用-或者根本不在子类中声明方法。在第二种情况下,方法将从父类继承,而在第一种情况下,它将是B
的方法,它调用父方法,即A
的方法。
此外,如果你不在子类中声明方法,它将不是公共的,所以它可能不是你要找的东西(提到是为了展示继承是如何工作的)。也就是说,如果你想拥有公共方法——唯一的方法是从B
类的test()
方法中调用父::test()