Razlika Između Apstraktne Klase I Nasljedstva

Razlika Između Apstraktne Klase I Nasljedstva
Razlika Između Apstraktne Klase I Nasljedstva

Video: Razlika Između Apstraktne Klase I Nasljedstva

Video: Razlika Između Apstraktne Klase I Nasljedstva
Video: 9. Programiranje - JAVA - ECLIPSE - Apstraktne klase i Interfejsi 2024, Studeni
Anonim

Sažetak klasa vs nasljeđivanje

Apstraktna klasa i nasljeđivanje dva su važna objektno orijentirana koncepta koja se nalaze u mnogim objektno orijentiranim programskim jezicima poput Jave. Apstraktna klasa može se smatrati apstraktnom verzijom redovite (konkretne) klase, dok nasljeđivanje dopušta da nove klase proširuju ostale klase. Apstraktna klasa je klasa koja se ne može inicijalizirati, ali se može proširiti. Dakle, klase sažetak ima smisla imati samo ako programski jezik podržava nasljeđivanje. U Javi se klase Abstract deklariraju pomoću ključne riječi Abstract, dok se ključna riječ Extends koristi za nasljeđivanje iz (super) klase.

Što je sažetak?

Uobičajeno se apstraktne klase, poznate i kao Abstract Basic Classes (ABC), ne mogu instancirati (instanca te klase ne može se stvoriti). Dakle, klase sažetak ima smisla imati samo ako programski jezik podržava nasljeđivanje (mogućnost stvaranja potklasa od proširenja klase). Apstraktne klase obično predstavljaju apstraktni koncept ili entitet s djelomičnom ili nikakvom implementacijom. Stoga, apstraktni razredi djeluju kao roditeljski razredi iz kojih se izvode podređeni razredi, tako da će podređeni razred dijeliti nepotpune značajke nadređenog razreda, a funkcionalnost se može dodati kako bi ih dovršila.

Apstraktni tečajevi mogu sadržavati apstraktne metode. Podrazredi koji proširuju apstraktnu klasu mogu primijeniti ove (naslijeđene) apstraktne metode. Ako podređena klasa provodi sve takve apstraktne metode, to je konkretna klasa. Ali ako se to ne dogodi, podređeni razred također postaje sažetak. Sve ovo znači da, kad programer nominira klasu kao Sažetak, ona kaže da će klasa biti nepotpuna i da će imati elemente koje treba dovršiti nasljeđivanjem potklasa. Ovo je lijep način za stvaranje ugovora između dva programera, koji pojednostavljuje zadatke u razvoju softvera. Programer, koji piše kod za nasljeđivanje, mora točno slijediti definicije metode (ali naravno može imati vlastitu implementaciju).

Što je nasljeđivanje?

Nasljeđivanje je objektno orijentirani koncept koji omogućava novim razredima da prošire druge razrede. Ključna riječ extends koristi se za implementaciju koncepta nasljeđivanja u programskom jeziku Java. Nasljeđivanje u osnovi pruža ponovnu upotrebu koda dopuštajući proširivanje svojstava i ponašanja postojeće klase novo definiranom klasom. Kada nova podklasa (ili izvedena klasa) proširi super klasu (ili roditeljsku klasu), ta će podrazred naslijediti sve atribute i metode super klase. Podrazred može po želji nadjačati ponašanje (pružiti novu ili proširenu funkcionalnost metodama) naslijeđeno od roditeljske klase. Tipično, podrazred ne može proširiti više super klasa (npr. Na Javi). Stoga ne možete koristiti proširenja za višestruko nasljeđivanje. Da biste imali višestruko nasljeđivanje, morate koristiti sučelja.

Koja je razlika između klase sažetka i nasljeđivanja?

Apstraktne klase obično predstavljaju apstraktni koncept ili entitet s djelomičnom ili nikakvom implementacijom. Nasljeđivanje omogućuje novim razredima da prošire druge razrede. Budući da se klase sažetka ne mogu instancirati, morate koristiti koncept nasljeđivanja da biste koristili klase sažetak. Inače, klasa Sažetak nema koristi. Apstraktne klase mogu sadržavati apstraktne metode, a kada se klasa proširi, sve metode (Sažetak i konkretne) se nasljeđuju. Naslijeđena klasa može implementirati bilo koju ili sve metode. Ako se sve apstraktne metode ne implementiraju, tada ta klasa postaje i klasa Abstract. Klasa ne može naslijediti više od jedne klase Abstract (ovo nije kvaliteta abstraktnih klasa per se, već ograničenje nasljeđivanja).

Preporučeno: