Razlika Između Nasljeđivanja I Sastava

Razlika Između Nasljeđivanja I Sastava
Razlika Između Nasljeđivanja I Sastava

Video: Razlika Između Nasljeđivanja I Sastava

Video: Razlika Između Nasljeđivanja I Sastava
Video: TIPOVI NASLJEĐIVANJA: DOMINANTNO-RECESIVNO, INTERMEDIJARNO, KODOMINANTNO, VEZANI GENI, POLIGENSKO... 2024, Travanj
Anonim

Nasljeđivanje vs Kompozicija

Nasljeđivanje i sastav dva su važna pojma pronađena u OOP-u (objektno orijentirano programiranje). Jednostavno rečeno, i kompozicija i nasljeđivanje bave se pružanjem dodatnih svojstava ili ponašanja klasi. Nasljeđivanje je sposobnost klase da nasljeđuje svojstva i ponašanje od roditeljske klase proširujući je. S druge strane, Composition je sposobnost klase da sadrži podatke različitih klasa kao podatke člana.

Što je nasljeđivanje?

Kao što je gore spomenuto, nasljeđivanje je sposobnost klase da nasljeđuje svojstva i ponašanje od roditeljske klase njenim proširivanjem. Nasljeđivanje u osnovi pruža ponovnu upotrebu koda dopuštajući proširivanje svojstava i ponašanja postojeće klase novo definiranom klasom. Ako se klasa A proširuje na B, tada se klasa B naziva roditeljska klasa (ili super klasa), a klasa A naziva se podređena (ili izvedena klasa / podrazred). U ovom primjeru scenarij, klasa A naslijedit će sve javne i zaštićene atribute i metode super klase (B). Podrazred može po želji nadjačati (pružiti novu ili proširenu funkcionalnost metodama) ponašanje naslijeđeno od roditeljske klase.

Nasljeđivanje predstavlja odnos "je-a" u OOP-u. To u osnovi znači da je A također i B. Drugim riječima, B može biti klasa s općim opisom određenog entiteta iz stvarnog svijeta, ali A određuje određenu specijalizaciju. U stvarnom programskom problemu, klasa Person može se proširiti tako da stvori klasu Employee. To se naziva specijalizacija. Ali također možete prvo stvoriti klasu Employee, a zatim je generalizirati i na klasu Person (tj. Generalizaciju). U ovom primjeru, zaposlenik će imati sva svojstva i ponašanje osobe (tj. Zaposlenik je također osoba) i može sadržavati neke dodatne funkcije (dakle, osoba nije zaposlenik).

Što je sastav?

Sastav je sposobnost klase da sadrži podatke različitih klasa kao podatke člana. Na primjer, klasa A može sadržavati objekt klase B kao člana. Ovdje se sve javne metode (ili funkcije) definirane u B mogu izvršiti unutar klase A. Klasa A postaje spremnik, dok klasa B postaje sadržana klasa. Sastav se naziva i kontejnerom. U ovom se primjeru može reći da je klasa A sastavljena od klase B. U OOP-u Kompozicija predstavlja odnos "ima-a". Važno je napomenuti da, iako spremnik ima pristup za izvršavanje svih javnih metoda sadržane klase, nije u mogućnosti promijeniti ili pružiti dodatnu funkcionalnost. Kada je riječ o stvarnom programskom problemu, objekt klase TextBox može biti sadržan u klasi Form,pa se stoga može reći da obrazac sadrži TextBox (ili je obrazac sastavljen od TextBox-a).

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

Iako su nasljeđivanje i sastav dva OOP koncepta, oni se poprilično razlikuju u onome što omogućavaju programeru da postigne. Nasljeđivanje je sposobnost klase da nasljeđuje svojstva i ponašanje roditeljske klase proširujući je, dok je Kompozicija sposobnost klase da sadrži podatke različitih klasa kao podatke člana. Ako se klasa proširi, nasljeđuje sva javna i zaštićena svojstva / ponašanje i ta ponašanja može nadjačati potklasa. Ali ako je klasa sadržana u drugoj, spremnik nema mogućnost promjene ili dodavanja ponašanja u sadržanoj. Nasljeđivanje predstavlja odnos "je-a" u OOP-u, dok Kompozicija predstavlja odnos "ima-a".

Preporučeno: