Abstraktni razredi in vmesniki Podobnosti: (1) je mogoče dedovati (2) ni mogoče instancirati (3) lahko vsebuje deklaracije metod (4) Izpeljana klasa mora implementirati neimplementirano metodo Kategorija: (1) Abstraktni osnovni razredi lahko definirajo polja, lastnosti in implementacije metod. Vmesniki lahko definirajo le atribute, indeksatorje, dogodke in deklaracije metod ter ne smejo vsebovati polj. (2) Abstraktni razred je nepopoln razred, ki potrebuje nadaljnje izpopolnjevanje, medtem ko je vmesnik vedenjska norma. Microsoftovi prilagojeni vmesniki vedno vsebujejo ustrezno polje, ki dokazuje, da so izrazi "Zmorem..." ” (3) Vmesnike je mogoče implementirati večkrat, abstraktne razrede pa lahko podeduje le ena oseba (4) Abstraktni razredi so bolj definirani med nizom tesno povezanih razredov, medtem ko so večina vmesnikov ohlapno povezani razredi, ki vsi implementirajo določeno funkcijo (5) Abstraktni razredi so pojmi, abstrahirani iz niza povezanih predmetov, zato odražajo notranjo skupnost stvari; Vmesnik je funkcionalna konvencija, definirana za izpolnjevanje zunanjih klicev, zato odraža zunanje značilnosti stvari (6) Vmesnik v osnovi nima nobenih specifičnih značilnosti dedovanja, obljublja le metode, ki jih je mogoče imenovati (7) Vmesniki se lahko uporabljajo za podporo povratnim klicem, vendar dedovanje te funkcije nima (8) Specifične metode, implementirane z abstraktnimi razredi, so privzeto virtualne, vendar so metode vmesnika v razredu, ki implementirajo vmesnik, privzeto nevirtualne, seveda jih lahko tudi razglasite za virtualne (9) Če abstraktni razred implementira vmesnik, se metoda v vmesniku lahko preslika v abstraktni razred kot abstraktna metoda brez potrebe po implementaciji, metoda v vmesniku pa se lahko implementira v podrazredu abstraktnega razreda
|