Razlika med abstraktnim razredom in vmesnikom

Izvleček razreda vmesnik

Abstraktni razred (ali vrsta) je vrsta sistema nominativnega tipa, ki ga proglasi program. Čeprav ime nakazuje tako, lahko abstraktni razred vključuje ali ne vsebuje abstraktnih metod ali lastnosti. Razločitveni razred se nanaša na različne jezikovne konstrukte, ki se lahko uporabljajo za izvajanje abstraktnih vrst. Abstraktne razrede lahko označimo z oblikovalsko problematiko, ki ustreza najboljšemu objektno usmerjenemu programiranju in njihovi nedokončani naravi.

Vmesnik je abstraktni tip, ki ga morajo razredi implementirati, da določijo vmesnik (splošno gledano). Vmesniki lahko vsebujejo samo podpise metod in konstantne deklaracije (statične in končne), nikoli definicije metod. Vmesniki simulirajo več dedovanj in se uporabljajo za kodiranje podobnosti v skupni rabi med različnimi vrstami razredov.

Abstraktne vrste je mogoče ustvariti, označiti ali simulirati na več različnih načinov. Programer lahko abstraktne tipe označi z izrecno uporabo ključne besede abstraktno z vključitvijo ene ali več metod v definicijo razreda, podedovanjem od drugega abstraktnega tipa, ne da bi prepoznal manjkajoče funkcije, potrebne za dokončanje opredelitve razreda ali s pošiljanjem določene metode objektno usmerjenemu načinu programski jezik, znan kot ta, ki metode ne izvaja neposredno.

Vmesnike je mogoče določiti z abstraktnimi metodami. Razredi se lahko izvajajo tudi v vmesnikih. Če razred izvaja vmesnik in ne izvaja vseh svojih metod, je treba uporabiti izvleček označevalca, sicer ta označevalca ni potrebna (ker so vsi vmesniki samo po sebi abstraktni). Razredi lahko izvajajo tudi več vmesnikov.

Medtem ko se vmesniki uporabljajo za določanje splošnih vmesnikov, se lahko za določitev in uveljavitev protokola uporabijo abstraktni tipi (to je niz operacij, ki jih morajo podpirati vsi predmeti, ki izvajajo želeni protokol). Abstraktni tipi se ne pojavljajo v jezikih brez podtipkanja. Kot takšni podtipi so prisiljeni izvajati vse potrebne funkcionalnosti, kar zagotavlja pravilnost izvajanja programa. Abstraktni tipi se lahko ustvarijo na več načinov: popolni abstraktni osnovni razredi so razredi, ki so bodisi izrecno razglašeni za abstraktne, bodisi vsebujejo abstraktne (nespremenjene) metode; Skupni sistem predmetov Lisp vključuje kombinacije, ki temeljijo na sistemu Arome; Java, seveda; in lastnosti, ki deluje kot razširitev na Smalltalk.

Povzetek:
1. Abstraktni razredi (ali vrste) prijavijo programe; vmesniki so abstraktni tipi, ki jih morajo vsi razredi implementirati, da določijo svoj vmesnik.
2. Izvlečne vrste lahko označimo s ključno besedo; vmesniki so samo po sebi abstraktni, zato jih sploh ni treba označevati s ključno besedo (razen če poseben razred izvaja vmesnik, vendar ne izvaja vseh svojih metod).