Sažetak Klasa vs Nasljeđivanje
Sažetak klase i nasljeđivanje dva su važna objektno orijentirana koncepta koja se nalaze u mnogim objektno programskim jezicima kao što je Java. Sažetak klase može se smatrati apstraktnom verzijom regularne (konkretne) klase, dok nasljeđivanje omogućuje novim klasama proširenje drugih klasa. Sažetak klase je klasa koja se ne može inicijalizirati, ali može se proširiti. Dakle, Sažetak predavanja ima smisla imati samo ako programski jezik podržava nasljeđivanje. U Javi se klase Sažetak deklariraju pomoću ključne riječi Sažetak, dok se za nasljeđivanje od (super) klase koristi ključna riječ Extends.
Što je apstraktna klasa?
Obično se klase Sažetaka, poznate i kao Sažetak osnovnih klasa (ABC), ne mogu instancirati (instanca te klase se ne može stvoriti). Dakle, apstraktne klase imaju smisla imati samo ako programski jezik podržava nasljeđivanje (sposobnost stvaranja potklasa iz proširenja klase). Sažetak nastave obično predstavlja apstraktni koncept ili cjelinu s djelomičnom ili nikakvom provedbom. Prema tome, Sažeci klase djeluju kao nadređeni razredi iz kojih se izvode razrede djece tako da će dječja klasa dijeliti nepotpune značajke roditeljske klase, a može se dodati funkcionalnost da ih ispuni.
Sažeci mogu sadržavati apstraktne metode. Podklase koje proširuju apstraktnu klasu mogu implementirati ove (naslijeđene) Sažetak metode. Ako dječja klasa provodi sve takve apstraktne metode, to je konkretan razred. Ali ako to ne uspije, dječji razred postaje i apstraktni razred. Sve to znači da, kad programer nominira klasu kao Sažetak, ona kaže da će klasa biti nepotpuna i da će imati elemente koje moraju ispuniti nasljedne podklase. Ovo je lijep način za sklapanje ugovora između dva programera, što pojednostavljuje zadatke u razvoju softvera. Programer, koji piše kôd da naslijedi, mora točno slijediti definicije metoda (ali naravno može imati i svoju implementaciju).
Što je nasljeđivanje?
Nasljeđivanje je koncept orijentiran na objekt, koji omogućuje novim klasama proširenje drugih klasa. Ključna riječ Extends koristi se za implementaciju koncepta nasljeđivanja u programskom jeziku Java. Nasljeđivanje u osnovi pruža ponovnu upotrebu koda omogućavajući proširivanje svojstava i ponašanja postojeće klase novo definiranom klasom. Kada novi podrazred (ili izvedena klasa) proširi super klasu (ili roditeljsku klasu), taj će podrazred naslijediti sve atribute i metode super klase. Podklasa po izboru može nadjačati ponašanje (pružiti nove ili proširene funkcionalnosti metodama) naslijeđeno od roditeljske klase. Podklasa obično ne može proširiti više super klasa (npr. Na Javi). Dakle, proteze ne možete koristiti za višestruko nasljeđivanje. Da biste imali više nasljednih prava, trebate koristiti sučelja.
Koja je razlika između klase apstrakcije i nasljeđivanja?
Sažetak nastave obično predstavlja apstraktni koncept ili entitet s djelomičnom ili nikakvom provedbom. Nasljeđivanje omogućuje novim klasama proširenje drugih razreda. Budući da apstraktne nastave ne mogu biti trenutačne, trebate koristiti koncept nasljeđivanja da biste iskoristili apstraktne razrede. Inače, sažetak klase nema koristi. Apstraktne nastave mogu sadržavati apstraktne metode i kada se nastava proširi, sve se metode (Sažetak i konkretnost) nasljeđuju. Naslijeđena klasa može implementirati bilo koju ili sve metode. Ako se ne primijene sve apstraktne metode, tada ta klasa također postaje apstraktna klasa. Razred ne može naslijediti više od jedne klase Sažetak (ovo nije kvaliteta sažetaka klase, već ograničenje nasljeđivanja).