Sažetak Klasa vs sučelje
Sažetak klase i sučelje dvije su objektno orijentirane konstrukcije koje se nalaze u mnogim objektno programskim jezicima kao što je Java. Sažetak klase može se smatrati apstraktnom verzijom regularne (konkretne) klase, dok se sučelje može smatrati načinom provedbe ugovora. Sažetak klase je klasa koja se ne može inicijalizirati, ali može se proširiti. Sučelje je vrsta koju moraju primijeniti druge klase. U Javi se klase Sažetak deklariraju pomoću ključne riječi Sažetak, dok se za definiranje sučelja koristi ključna riječ sučelje.
Što je apstraktna klasa?
Obično se apstraktne klase, poznate i kao apstraktne osnovne klase (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 dovrši.
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, kada programer nominira klasu kao Sažetak, ona kaže da će klasa biti nepotpuna i da će imati elemente koje treba ispuniti nasljeđujućim podrazredima. 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 sučelje?
Sučelje je apstraktni tip koji se koristi za određivanje ugovora koji bi se trebala provoditi po klasama, a koje implementiraju to sučelje. Ključna riječ sučelja koristi se za definiranje sučelja, a ključna riječ Implements koristi se za implementaciju sučelja po klasama (u programskom jeziku Java). Sučelje obično sadrži samo potpise metoda i stalne deklaracije. Svako sučelje koje implementira određeno sučelje treba implementirati sve metode definirane u sučelju ili se treba deklarirati kao apstraktna klasa. U Javi se vrsta reference objekta može definirati kao vrsta sučelja. Ali taj objekt mora biti ili null ili treba sadržavati objekt klase koji implementira određeno određeno sučelje. Korištenjem ključne riječi Implements u Javi možete implementirati više sučelja u jednu klasu.
Koja je razlika između klase apstrakcije i sučelja?
Sažetak nastave obično predstavlja apstraktni koncept ili entitet s djelomičnom ili nikakvom provedbom. S druge strane, sučelje je apstraktnog tipa koje se koristi za određivanje ugovora koje bi klase trebale provesti. Apstraktne nastave trebaju biti naslijeđene (ili proširene), dok sučelja trebaju biti implementirana. Sažetak predavanja može sadržavati apstraktne metode, dok sučelje treba sadržavati samo apstraktne metode. Sažetak klase može sadržavati bilo koje varijable, ali sučelja mogu definirati samo konstante. Klasa ne može naslijediti više od jedne apstraktne klase, ali može implementirati više sučelja. Sučelje ne može implementirati drugo sučelje. Međutim, sučelje može proširiti klasu.