Abstraktné triedy a rozhrania Podobnosti: (1) môže byť dedičný (2) nemožno inštancionovať (3) môže obsahovať deklarácie metód (4) Odvodená trieda musí implementovať neimplementovanú metódu Kategória: (1) Abstraktné základné triedy môžu definovať polia, vlastnosti a implementácie metód. Rozhrania môžu definovať iba atribúty, indexátory, udalosti a deklarácie metód a nemôžu obsahovať polia. (2) Abstraktná trieda je neúplná trieda, ktorá potrebuje ďalšie doladenie, zatiaľ čo rozhranie je behaviorálna norma. Vlastné rozhrania Microsoftu vždy obsahujú schopné pole, ktoré dokazuje, že sú vyjadrením "Dokážem to..." ” (3) Rozhrania môžu byť implementované viackrát a abstraktné triedy môže dediť iba jedna osoba (4) Abstraktné triedy sú viac definované medzi sériou úzko súvisiacich tried, zatiaľ čo väčšina rozhraní sú voľne súvisiace triedy, ktoré všetky implementujú určitú funkciu (5) Abstraktné triedy sú pojmy abstrahované zo série súvisiacich objektov, takže odrážajú vnútornú spoločnosť vecí; Rozhranie je funkčná konvencia definovaná na uspokojenie vonkajších volaní, takže odráža vonkajšie charakteristiky vecí (6) Rozhranie v podstate nemá žiadne špecifické charakteristiky dedičnosti, iba sľubuje metódy, ktoré možno volať (7) Rozhrania môžu podporovať spätné volania, ale dedičnosť túto funkciu nemá (8) Konkrétne metódy implementované abstraktnými triedami sú predvolene virtuálne, ale rozhraniové metódy v triede, ktorá implementuje rozhranie, sú predvolene nevirtuálne, samozrejme, môžete ich tiež deklarovať za virtuálne (9) Ak abstraktná trieda implementuje rozhranie, metóda v rozhraní môže byť mapovaná na abstraktnú triedu ako abstraktná metóda bez nutnosti jej implementácie a metóda v rozhraní môže byť implementovaná v podtriede abstraktnej triedy
|