![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 7.08.2004 Skąd: Brześć Kujawski Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam pewien problem... Otóż chciałbym aby pewna klasa (np. A) dziedziczyła wartości, funkcje itp. nie z jednej ale z dwóch innych klas (np. B i C). Gdyby dziedziczenie było z jednej klasy, kod wyglądałby tak:
ale ja chce z dwóch... Oto moje sposoby które NIE WYPALIŁY ;(
Ma ktoś jeszcze jakiś pomysł? Prosze o pomoc, bo moje prace na warsztacie staneły ![]() Dzieki z góry ![]() -------------------- Politechnika Warszawwska, Informatyka, G1I3
Aktualnie C i C++, ale nadal bardzo php ;p |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Nie jest to możliwe (na szczęście)
Projekt OOP w php z góry zakłądał, że wielodziedziczenie jest złe, i że nie będzie ono wprowadzane. Ewentulanie można użyć pewnego substytutu - interfejsów - których można urzyć wiecej niż jednego. Oczywiście - dotyczy to php5. ps. Przenosze z pro -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#3
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Możesz też zrobić tak.
-------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
@bela_666 To nie jest wielodziedziczenie.
-------------------- |
|
|
![]()
Post
#5
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
SongoQ wiem, podałem alternatywe :] Dziedziczenie łańcuche to się chyba nazywa.
-------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 24.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ewentulanie można użyć pewnego substytutu - interfejsów - których można urzyć wiecej niż jednego. Oczywiście - dotyczy to php5. No nie bardzo. Pewne cechy wielodziedziczenia możesz uzyskać wykorzystując agregację obiektów, czy klas. PHP ma do tego specjalne funkcje, ale ja używam staromodnej asocjacji, która zresztą jest polecana. Radzę trochę poczytać: http://www.php.net/manual/pl/ref.objaggregation.php Interfejsy przydają się tu, tylko i wyłącznie, do zapewnienia odpowiedniego API dla klasy dziedziczącej. Proszę nie mylić tych pojęć. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 22.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie jest to możliwe (na szczęście) Projekt OOP w php z góry zakłądał, że wielodziedziczenie jest złe, i że nie będzie ono wprowadzane. Stwierdzili, że w języku interpretowanym rozwikłanie zależności pomiędzy klasami byłoby zbyt skomplikowane. Jest to jedną z największych wad obiektowości w PHP (JAVA zresztą też) obok braku możliwości przeładowywania operatorów (rozszerzenie operator jest takie sobie). |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.06.2025 - 19:26 |