在我的PHP代码中,我在一个抽象类中有一个受保护的方法,我们将其称为类A.如果我创建一个名为B的新类,它扩展了A,我是否必须在B中声明它是公共的,还是我有重新编写所有实现,这样当我实例化BI时可以调用这个方法吗?
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
答案 0 :(得分:1)
您需要进行parent::test()
调用 - 或者根本不要在子类中声明方法。在第二种情况下,方法将是来自父类的inherited,而在第一种情况下,它将是调用父方法的B
方法,即A
的方法。
此外,如果您不在子类中声明方法,它将不会公开,因此它可能不是您正在寻找的东西(提及显示继承如何工作)。即如果你想拥有公共方法 - 唯一的方法是从parent::test()
类
test()
方法内部调用B