0

在我的 PHP 代码中,我在一个抽象类中有一个受保护的方法,我们将其称为类 A。如果我创建一个名为 B 的扩展 A 的新类,我是否必须简单地在 B 中将其声明为 public 还是必须重新编写所有实现,以便当我实例化 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?
  }
}

谢谢克鲁兹

4

1 回答 1

1

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

此外,如果您不在子类中声明方法,则它不会是公共的,因此它可能不是您要寻找的东西(提到以显示继承如何工作)。即,如果您想拥有公共方法-唯一的方法是从类parent::test()的内部test()方法中调用B

于 2013-10-08T13:16:44.557 回答