Autor | Zpráva | ||
---|---|---|---|
fopen Profil * |
Je možné rozšírovať viac tried naraz podobne ako pri implementácii?
príklad implementácie: class StereoReceiver implements ElectricalDevice, FrequencyTuner{ // define ElectricalDevice... // define FrequencyTuner... } príklad hypotetického rozšírenia: class StereoReceiver extends ElectricalDevice, FrequencyTuner{ // define ElectricalDevice... // define FrequencyTuner... } |
||
Alphard Profil |
#2 · Zasláno: 6. 12. 2009, 20:40:19
V PHP ne.
|
||
fopen Profil * |
#3 · Zasláno: 6. 12. 2009, 20:43:33
[#2] Alphard Vďaka, ale škoda, bola by to vychytávka...
|
||
TomášK Profil |
#4 · Zasláno: 6. 12. 2009, 21:29:11
Řekl bych, že vícenásobná dědičnost měla natolik řídké *rozumné* využití, že v jazyce záměrně není. Používá se především tehdy, pokud jazyk nepodporuje rozhraní (interface), což není případ PHP. Ve škole nám tuším říkali, že pokud dojdem k tomu, že bychom chtěli využít vícenásobnou dědičnost, pak je návrh na 99% špatný. Narazíte třeba na Diamond problem
|
||
DoubleThink Profil * |
#5 · Zasláno: 6. 12. 2009, 21:42:33
TomášK:
„Používá se především tehdy, pokud jazyk nepodporuje rozhraní (interface), což není případ PHP“ Takhle bych to nezobecnil. Interface je šablona pro zajištění jednotné implementace, dědičnosti se až tak nedotýká. fopen: „škoda, bola by to vychytávka...“ To jo, úplně to vidím před sebou - už tak bizarní objektový model s ještě bizarnější implementací dědičnosti. |
||
TomášK Profil |
#6 · Zasláno: 6. 12. 2009, 22:19:13
Ve škole nám říkali, že se vícenásobná dědičnost používá v kombinaci s abstraktními třídami k dosažení téhož, co v jiných jazycích zajišťuje právě rozhraní, jinak mnoho využití nemá. Nicméně tu mé znalosti končí, je možné, že jde o přílišné zobecnění.
|
||
AM_ Profil |
#7 · Zasláno: 6. 12. 2009, 23:17:46
DoubleThink:
„Takhle bych to nezobecnil. Interface je šablona pro zajištění jednotné implementace, dědičnosti se až tak nedotýká.“ právě - ale pokud jazyk interface nepodporuje, tak se dá abstraktní třídou nahradit. |
||
fopen Profil * |
#8 · Zasláno: 6. 12. 2009, 23:26:52
[#5] DoubleThink Píšem rozšírenie pre PHPMailer ,ale chcem aby bola v tom rozšíreni zahrnutá aj moja zakladna trieda - bizardne mi pride dopisovat do PHPMailer-a require('class.mojazakladnatrieda.php') a extends MojaZakladnaTrieda , v prípade ak by fungovalo viacnásobne rozšírenie nemusel by som do PHPMailera dopisova nic - to je cela sranda
|
||
Jan Tvrdík Profil |
#9 · Zasláno: 7. 12. 2009, 00:19:58
fopen:
Použij skládání (třída má instanci jiné třídy v sobě uloženou jako atribut). |
||
Časová prodleva: 14 let
|
0