<?php interface iFnc { public __construct($param1); } ?>
Oraz klasę abstrakcyjną:
<?php abstract class Fnc { __construct($param1) { // kod } } ?>
Kiedy dziedziczę po klasie Fnc oraz implementuje jednocześnie interfejs, mogę utworzyć klasę pochodną bez konstruktora!
<?php class Pochodna extends Fnc implements iFnc { } $p=new Pochodna(); ?>
Jak zmusić aby klasa Pochodna musiała zawierać konstruktor?
Gdy dodam jakąś funkcję do interfejsu też muszę ją zaimplementować w klasie Pochodna. Gdy klasa Pochodna nie dziedziczyłaby po Fnc, interfejs działa tak jak powinien i wymaga aby Pochodna miała konstruktor. Również kiedy usunę konstruktor z klasy Bazowej (Fnc) zgłaszany jest błąd, że nie ma konstruktora, co może sugerować, że konstruktor w klasie Pochodnej jest odziedziczony z klasy bazowej (

Pozdrawiam