私人方法可以在子类中过度使用

时间:2016-08-17 06:49:14

标签: php oop method-overriding

这是一个示例,如果方法的访问类型是公共的,则子类方法可以覆盖父方法 EX:

class Foo {

  public function fun1() {
    echo "Hello World";
  }

  public function callMe(){
    $this->fun1();
  }
}


class Bar extends Foo {

  public function fun1(){
    echo "check this out";
  }
}

$bar = new Bar();
$bar->callMe(); //this would print "check this out"

但如果fun1在父类private中获得Foo访问权限,则该方法不会再被越过。

例如:

class Foo {

  private function fun1() {
    echo "hello world";
  }

  public function callMe(){
    $this->fun1();
  }
}

在这种情况下,输出将为hello world 我想知道,即使访问类型为fun1,是否可以通过扩展类覆盖方法private

1 个答案:

答案 0 :(得分:-1)

不了解PHP但是根据OOP概念,因为具有访问修饰符private的方法虽然存在但不能覆盖或可供子类访问。如果要将其覆盖到子类,请尝试将访问修饰符更改为publicprotected