Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> czy to jakis bug ?, php5 abstract class
a79rtur
post
Post #1





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


witam
mam następujacą sytuacje:

jest klasa abstrakcyjna :

abstract class lokal()
i jej klasa potomna
class lokal_xml extends lokal()

w klasie potomnej mam zdefiniowana metode
public function createXML()

a w konstruntorze klasy potomnej wywoluje konstruktor rodzica :
parent::construct($lokal_id);

dziwna wydaje mi sie rzecz, ze jesli do konstruktora klasy rodzica, dodam wywolanie
$this->createXML(), to php nie zglasza zadnego bledu. wydaje mi sie ze powinno, poniewaz wywoluje metode, ktora jest zadeklarowana i zdefiniowana dopiero w klasie potomniej. jesli sie myle to prosze o wytlumaczenie o co chodzi.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sedziwoj
post
Post #2





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Mimo wszystko kompilator powinien ostrzec co najmniej, bo jeśli w tej klasie abstrakcyjnej była by zadeklarowana funkcja abstrakcyjna o nazwie createXML to już by nie było by kłopotu.

A co do konstruktora, to może lepsze by było takie rozwiązanie jak w Java tzn. jeśli klasa potomna nie ma konstruktora o danych parametrach (php akurat na to nie zwraca uwagi, tak wnioskuję ale nie testowałem) to wywołuje konstruktora klasy z której dziedziczy.

P.S. @Cysiaczek może powinieneś robić to co napisałem (jeśli nie robisz) to znaczy tworzyć abstrakcje aby zabezpieczyć się, że klasa pochodnia będzie miała tą metodę.
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: 11.10.2025 - 13:07