我知道我不能在 PHP 中重载方法。而且,据我所知,private
类中的方法对于扩展基类的类是不可见的。那么为什么这不起作用呢?
class Base {
private function foo($arg) {
print "Base $arg";
}
}
class Child extends Base {
public function foo() {
print "Child";
}
}
$c = new Child;
print $c->foo();
错误:
PHP Strict Standards: Declaration of Child::foo() should be compatible with Base::foo($arg) in /var/www/boludo.php on line 17
我假设该foo($arg)
方法在Child
课堂上是不可见的,因为 is private
。所以,我没有重载foo
,我只是创建了一个名为foo
.