Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

nasljedjivanje , polimorfizam i višestruki poliformizam ??

  • 4 odgovora
  • 9.352 pregleda

Najnovija ↓

nasljedjivanje , polimorfizam i višestruki poliformizam ?? 05.09.2007. u 11:14 · pre 233 meseca #1
Jos nekako sam skontao , sta je nasljeđivanje i kako se providi , shvatio i sta je polimorfizam i kako ga napraviti i onda sretnem pojam VIŠESTRUKI POLIMORFIZAM !! Molio bi ako ko ima kakvih spoznaja da napise , i eventualno neki primijer HVALA . (veoma je hitno )
Re: nasljedjivanje , polimorfizam i višestruki poliformizam ?? 05.09.2007. u 13:36 · pre 233 meseca #2
Kada iz klase Zivotinja nasledis klasu Macka, postigao si da sve osobine koje mogu pokazivati zivotinje u globalu, automatski postaju i osobine macke, pa tebi ostaje da se u klasi Macka bavis samo specificnostima same macke. Ako si istovremeno i paralelno razvijao klase koje opisuju kvalitet dlake kod zivih bica, mozda si se nasao u situaciji da imas klase Kratkodlaki, Dugodlaki, Celavi...
Polimorfizam je kada ti svoju Macku nasledis i iz klase Zivotinja i iz klase Kratkodlaka. Sada se u samoj klasi Macka ne moras baviti ni dlakom macke, kao sto si ranije postigao i sa zivotinjskim osobinama.
Nadam se da primer nije potpuno nerazumljiv, a ako jeste - reci, nije mi tesko da smislim i nesto blize zdravom razumu ;)

Kod visestrukog nasledjivanja treba paziti na membere koji se na neki nacin definisu i u jednoj i u drugoj klasi iz koje se nasledjuje, na problem konstruktora (ako postoji problem sa redosledom pozivanja) i sa preklopljenim metodama.
Ako zelis dublje da udjes u pricu, dacu ti neke linkove ili meni karakteristicno baljezganje sa mackama i psima :), mada ni pametniji autori nemaju mnogo srecnije paralele...
Na kraju samo da znas da vecina objektno orjentisanih jezika krece od pretpostavke da visestruko nasledjivanje uopste nije potrebno i da se svi takvi problemi mogu resiti i na nacin koji nije toliko podlozan greskama. Ovo nije kompletna istina, ali ostaje cinjenica da to resenje nije idealno i da ostavlja mogucnost zavlacenja gresaka koje se tesko pronalaze... Neces biti mnogo hendikepiran ukoliko ovu temu naucis samo informativno, a u praksi je potpuno izbegnes. S druge strane, mnogi C++ programeri povlace ovaj argument da bi dokazali Java programerima koliko je njihov jezik nadmocan...
Potpis
De si Deda...
Re: nasljedjivanje , polimorfizam i višestruki poliformizam ?? 07.09.2007. u 15:45 · pre 233 meseca #4
Pretpostavljam posto se nisam susretao sa terminom da je u pitanju sledece:

Klasa C nasledjuje Klasu A i Klasu B znaci da imamo visestruko nasledjivanje ...

E sad, posto znamo da je polimorfizam sledece:

Klasu C mozemo koristiti tamo gde se ocekuje Klasa A

onda to prevodimo u ovu visestruku terminologiju:

Klasu C mozemo koristiti tamo gde se ocekuje Klasa A ili Klasa B, samim tim imamo visestruki polimorfizam.

Da li ovo ima smisla?
Re: nasljedjivanje , polimorfizam i višestruki poliformizam ?? 08.09.2007. u 12:06 · pre 233 meseca #5
Moj omiljeni primer koji demonstrira i VIRTUELNI polimorfizam ( tacnije receno virtuelno nasledjivanje).
Code:

class Jabuka
 {
  public: virtual bool ocisti()=0;
  int boja a;
 };

class PrljavaJabuka // pokupljena sa zemlje
  : virtual Jabuka 
 {
  public: bool ocisti(){ /*pranje*/; return true; }
 };

class CrvljivaJabuka // ova je ubrana sa drvete i zato nije prljava
  : virtual Jabuka 
 {
  public: void ocisti(){ /* vadjenje crva*/; return true; }
 };

class PrljavaCrvljivaJabuka // malo je duze stajala na zemlji
  : public CrvljivaJabuka
  : public PrljavaJabuka
 {
  public: void ocisti(){ CrvljivaJabuka::ocisti(); PrljavaJabuka::ocisti(); /*dodatno pranje*/}
 };



Mozemo dodati i PrskanaJabuka pa na kraju napraviti PrljavaPrskanaCrvljivaJabuka gde bi metoda vratila false.

Potpis
AKA DDMM
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme