Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] dziedziczenie klas
propage
post
Post #1





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

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


Mam pewien problem, gdy mam dwie klasy, przy czym jedna dziedziczy po drugiej, chciałbym zrobić tak, iż w klasie nadrzędnej przypisuje funkcje, ktore mają być wykonane w momencie gdy w klasie podrzędnej zostanie wykonana inna funkcja

  1. class a
  2. (
  3. function a()
  4. )
  5. class b extends a
  6. (
  7. function b()
  8.  
  9. )


Czyli w monecie $b->b() powinna wykonać się również $a->a() jest jakiś sposób, aby to zapisać w klasie a (bez dokładania dodatkowego kodu do klasy (IMG:style_emoticons/default/cool.gif) ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Po pierwsze teraz używamy __construct

  1. class a
  2. {
  3. public function __construct()
  4. {
  5.  
  6. }
  7. }
  8.  
  9. class b extends a
  10. {
  11. public function __construct()
  12. {
  13. parent::__construct();
  14. }
  15. }
Go to the top of the page
+Quote Post
Wiktor P.
post
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 9
Dołączył: 14.09.2009

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


Jeśli nie przeszkadza ci, że będzie to funkcja statyczna, to można
  1.  
  2. class b extends a {
  3.  
  4. public function b()
  5. {
  6. (...)
  7. a::a();
  8. }


A jeżli przeszkadza, to

  1. class b extends a {
  2.  
  3. public function b()
  4. {
  5. (...)
  6. parent::a();
  7. }
Go to the top of the page
+Quote Post
propage
post
Post #4





Grupa: Zarejestrowani
Postów: 330
Pomógł: 0
Dołączył: 25.01.2008

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


Chodzi o to, aby obyć się kompletnie bez modyfikacji klasy b
Go to the top of the page
+Quote Post
yevaud
post
Post #5





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


jesli metoda B uruchamia swojego parenta, to sie da.
jesli nie to nie bardzo i dobrze (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
230005
post
Post #6





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

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


Bez modyfikacji, czyli dopisania choć jednej linii kodu się nie da. A tak poza tym to jest jak napisał wookieb, no chyba że te dwie funkcje to nie konstruktory, tylko przez przypadek tak wyglądają to zrób jak pisze wiktor...
Go to the top of the page
+Quote Post

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: 27.09.2025 - 01:55