抽象类中的protected方法

时间:2013-10-08 13:14:42

标签: php class abstract

在我的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

1 个答案:

答案 0 :(得分:1)

您需要进行parent::test()调用 - 或者根本不要在子类中声明方法。在第二种情况下,方法将是来自父类的inherited,而在第一种情况下,它将是调用父方法的B方法,即A的方法。

此外,如果您不在子类中声明方法,它将不会公开,因此它可能不是您正在寻找的东西(提及显示继承如何工作)。即如果你想拥有公共方法 - 唯一的方法是从parent::test()

test()方法内部调用B