Вот несколько фрагментов:
-
Метод переопределения конструктора имеет дополнительный параметр.
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()
.
Почему особое отношение к конструкторским методам?