为什么PHP允许“不兼容”的构造函数?
以下是几个片段:
-
重写构造函数方法具有一个额外的参数。
class Cat { function __construct() {} } class Lion extends Cat { function __construct($param) {} }
-
重写(常规)方法具有一个额外的参数。
class Cat { function doSomething() {} } class Lion extends Cat { function doSomething($param) {} }
第一个将起作用,而第二个将投掷 .Declaration of Lion::doSomething() should be compatible with that of Cat::doSomething()
为什么对构造函数方法有特殊的态度?