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
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




@LBO - faktycznie, przegalopowałem. Miałem na myśli, że nie ma podziału na obiekt bazowy i obiekt potomny. Zresztą rozbudowując nieco twój przykład.
  1. <?php
  2. abstract class AbstractClassA
  3. {
  4. public function ImAmethod()
  5. {
  6. print __METHOD__;
  7. }
  8. }
  9.  
  10. class ClassB extends AbstractClassA
  11. {
  12. function ImBmethod(){}
  13. }
  14.  
  15. $b = new ClassB();
  16. print '<pre>';
  17.  
  18. $b->ImAmethod();
  19.  
  20. print '<br />';
  21.  
  22. print_r(get_class_methods($b));
  23.  
  24. print '</pre>';
  25.  
  26. /*
  27. wyświetli:
  28.  
  29. AbstractClassA::ImAmethod
  30. Array
  31. (
  32. [0] => ImBmethod
  33. [1] => ImAmethod
  34. )
  35.  
  36.  
  37. */
  38. ?>


Właśnie o to zawieranie się metody w obiekcie mi chodzi : )

Wracając do tematu
Ze względu na powyższe nie można mieć pretensji do php, że nie wywala błędów, jeśli klasa bazowa korzysta z metod klasy potomnej. Robi to w kontekście obiektu.

Pozdrawiam.
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: 10.10.2025 - 20:47