关于php:可以在子类中覆盖私有方法

can private methods be over ridden in child class

本问题已经有最佳答案,请猛点这里访问。

这是一个示例,如果子类方法的访问类型是公共的,则子类方法可以重写父方法。前任:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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"

但是,如果在父类Foo中给予private访问权,那么该方法就不再是多余的。

前任:

1
2
3
4
5
6
7
8
9
10
class Foo {

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

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

在这种情况下,输出将是hello world
我想知道,即使访问类型为private的扩展类也可以重写方法fun1


不了解php,但不了解per oop概念,因为具有访问修饰符private的方法虽然存在,但不可重写,也不可访问子类。如果要将其重写为子类,请尝试将访问修饰符更改为publicprotected