Koja je razlika između sastava i nasljeđivanja?
Koja je razlika između sastava i nasljeđivanja?

Video: Koja je razlika između sastava i nasljeđivanja?

Video: Koja je razlika između sastava i nasljeđivanja?
Video: TIPOVI NASLJEĐIVANJA: DOMINANTNO-RECESIVNO, INTERMEDIJARNO, KODOMINANTNO, VEZANI GENI, POLIGENSKO... 2024, April
Anonim

Mada oboje Nasljedstvo i Kompozicija omogućava ponovnu upotrebu koda, main razlika između Sastav i Nasljedstvo u Javi je to Kompozicija dozvoljava ponovna upotreba kod bez proširenja, ali za nasljeđivanje morate proširiti the klase za bilo kakvu ponovnu upotrebu of koda ili funkcionalnosti.

Nakon toga se može zapitati koji je bolji nasljeđivanje ili sastav?

1) Jedan razlog favorizovanja Kompozicija gotovo Nasljedstvo u Javi je činjenica da Java ne podržava višestruke nasleđe . 2) Kompozicija ponude bolje sposobnost testiranja klase nego Nasljedstvo . Ako jedan klasa je sastavljena od druge klase, možete lako kreirati Mock Object koji predstavlja sastavljenu klasu radi testiranja.

Takođe, šta je kompozicija u objektno orijentisanom programiranju? Kompozicija je jedan od osnovnih pojmova u objekt - orijentirano programiranje . Opisuje klasu koja referencira jednu ili više njih objekata drugih klasa u varijablama instance. Ovo vam omogućava da modelirate asocijaciju između objekata . Takve veze možete naći prilično redovno u stvarnom svijetu.

Imajući ovo u vidu, šta znači kompozicija nad nasleđem?

Kompozicija nad nasljedstvom (ili princip kompozitne ponovne upotrebe) u objektno orijentiranom programiranju (OOP) je princip da klase treba da postignu polimorfno ponašanje i ponovnu upotrebu koda kompozicija (sadrži instance drugih klasa koje implementiraju željenu funkcionalnost), a ne nasleđe iz baze

Da li je agregacija naslijeđe?

Nasljedstvo : proširiti funkcionalnost klase kreiranjem podklase. Nadjačajte članove superklase u potklasama da biste pružili novu funkcionalnost. Agregacija : kreirati novu funkcionalnost uzimajući druge klase i kombinirajući ih u novu klasu.

Preporučuje se: