我收到这个错误Strict standards: Declaration of Boo::sayHello() should be compatible with Foo::sayHello($param = false) in C:\...
因为我没有设置$param = false
或true
在扩展子类中。
class Foo
{
var $message = 'Hello Foo';
public function sayHello($param = false)
{
return $this->message;
}
}
class Boo extends Foo
{
public function sayHello($param)
{
return 'Hello Boo';
}
public function sayWorld($b)
{
return 'Hello World';
}
}
$boo = new Boo;
var_dump($boo->sayHello('a'));
var_dump($boo->sayWorld('b'));
是否可以完全覆盖或重新定义父类中的方法?
顺便说一句,这样做是不好的做法吗?