调用重写的父方法

2022-08-30 14:53:18

在下面的示例代码中,父类中的方法被子类 中的方法重写。是否可以从 中调用 ?test()Footest()BarFoo::test()Bar::test()

class Foo 
{
  $text = "world\n";

  protected function test() {
    echo $this->text;
  }
}// class Foo

class Bar extends Foo 
{
  public function test() {
    echo "Hello, ";

    // Cannot use 'parent::test()' because, in this case,
    // Foo::test() requires object data from $this
    parent::test();
  }
}// class Bar extends Foo

$x = new Bar;
$x->test();

答案 1

在方法名称之前使用,例如parent::

parent::test();

查看父项


答案 2
parent::test();

(请参阅 http://www.php.net/manual/en/language.oop5.paamayim-nekudotayim.php 中的示例 #3)


推荐