Razlika med abstraktnim razredom in vmesnikom

Razlika med abstraktnim razredom in vmesnikom
Razlika med abstraktnim razredom in vmesnikom

Video: Razlika med abstraktnim razredom in vmesnikom

Video: Razlika med abstraktnim razredom in vmesnikom
Video: Установка Windows 7 вместо Windows 8 2024, Julij
Anonim

Abstraktni razred proti vmesniku

Abstraktni razred in vmesnik sta dva objektno usmerjena konstrukta, ki ju najdemo v številnih objektno usmerjenih programskih jezikih, kot je Java. Abstraktni razred lahko obravnavamo kot abstraktno različico običajnega (konkretnega) razreda, medtem ko lahko vmesnik obravnavamo kot sredstvo za izvajanje pogodbe. Abstraktni razred je razred, ki ga ni mogoče inicializirati, lahko pa ga razširite. Vmesnik je vrsta, ki jo morajo implementirati drugi razredi. V Javi so abstraktni razredi deklarirani s ključno besedo Abstract, medtem ko se ključna beseda vmesnik uporablja za definiranje vmesnika.

Kaj je abstraktni razred?

Običajno abstraktnih razredov, znanih tudi kot abstraktni osnovni razredi (ABC), ni mogoče ustvariti (primerka tega razreda ni mogoče ustvariti). Torej so abstraktni razredi smiselni samo, če programski jezik podpira dedovanje (zmožnost ustvarjanja podrazredov iz razširitve razreda). Abstraktni razredi običajno predstavljajo abstrakten koncept ali entiteto z delno implementacijo ali brez nje. Zato abstraktni razredi delujejo kot nadrejeni razredi, iz katerih so izpeljani podrejeni razredi, tako da bo podrejeni razred delil nepopolne lastnosti nadrejenega razreda in je mogoče dodati funkcionalnost za njihovo dokončanje.

Abstraktni razredi lahko vsebujejo abstraktne metode. Podrazredi, ki razširjajo abstraktni razred, lahko izvajajo te (podedovane) abstraktne metode. Če podrejeni razred izvaja vse takšne abstraktne metode, je to konkreten razred. Če pa se ne, postane podrejeni razred tudi abstraktni razred. Vse to pomeni, da programer, ko nominira razred kot povzetek, pove, da bo razred nepopoln in bo imel elemente, ki jih morajo dopolniti nasledstveni podrazredi. To je lep način za ustvarjanje pogodbe med dvema programerjema, ki poenostavi naloge pri razvoju programske opreme. Programer, ki piše kodo za dedovanje, mora natančno slediti definicijam metode (seveda pa ima lahko svojo izvedbo).

Kaj je vmesnik?

Vmesnik je abstraktni tip, ki se uporablja za določanje pogodbe, ki naj bi jo implementirali razredi, ki implementirajo ta vmesnik. Ključna beseda vmesnik se uporablja za definiranje vmesnika, ključna beseda Implements pa za implementacijo vmesnika s strani razreda (v programskem jeziku Java). Običajno bo vmesnik vseboval samo podpise metod in deklaracije konstant. Vsak vmesnik, ki izvaja določen vmesnik, mora izvajati vse metode, definirane v vmesniku, ali pa mora biti deklariran kot abstraktni razred. V Javi lahko tip sklicevanja na objekt definiramo kot tip vmesnika. Toda ta objekt mora biti nič ali pa mora vsebovati objekt razreda, ki izvaja ta določen vmesnik. Z uporabo ključne besede Implements v Javi lahko implementirate več vmesnikov v en razred.

Kakšna je razlika med abstraktnim razredom in vmesnikom?

Abstraktni razredi običajno predstavljajo abstrakten koncept ali entiteto z delno implementacijo ali brez nje. Po drugi strani pa je vmesnik abstrakten tip, ki se uporablja za določanje pogodbe, ki naj bi jo izvajali razredi. Abstraktne razrede je treba podedovati (ali razširiti), vmesnike pa implementirati. Abstraktni razredi lahko vsebujejo abstraktne metode, medtem ko mora vmesnik vsebovati samo abstraktne metode. Abstraktni razredi lahko vsebujejo poljubne spremenljivke, vmesniki pa lahko definirajo le konstante. Razred ne more podedovati več kot enega abstraktnega razreda, lahko pa izvaja več vmesnikov. Vmesnik ne more izvajati drugega vmesnika. Vendar lahko vmesnik razširi razred.

Priporočena: