Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z implementacją interfejsu w klasie pochodnej
bongdigibonbon
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 27.06.2007

Ostrzeżenie: (0%)
-----


Mam taki oto interfejs:

  1. <?php
  2. interface iFnc {
  3. public __construct($param1);
  4. }
  5. ?>

Oraz klasę abstrakcyjną:

  1. <?php
  2. abstract class Fnc {
  3. __construct($param1) {
  4. // kod
  5. }
  6. }
  7. ?>

Kiedy dziedziczę po klasie Fnc oraz implementuje jednocześnie interfejs, mogę utworzyć klasę pochodną bez konstruktora!

  1. <?php
  2. class Pochodna extends Fnc implements iFnc {
  3.  
  4. }
  5.  
  6. $p=new Pochodna();
  7. ?>


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 ((IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) ?)

Pozdrawiam

Ten post edytował bongdigibonbon 29.06.2007, 09:02:14
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 14:05