Abstraktit luokat ja rajapinnat Yhtäläisyydet: (1) voi periytyä (2) ei voi instansoitua (3) voi sisältää metodi-ilmoituksia (4) Johdettu luokka on toteutettava toteuttamaton menetelmä Kategoria: (1) Abstraktit perusluokat voivat määritellä kenttiä, ominaisuuksia ja metoditoteutuksia. Rajapinnat voivat määritellä vain attribuutteja, indeksaattoreita, tapahtumia ja metodimäärityksiä, eivätkä ne voi sisältää kenttiä. (2) Abstrakti luokka on epätäydellinen luokka, joka tarvitsee lisähiomista, kun taas rajapinta on käyttäytymisnormi. Microsoftin räätälöidyissä käyttöliittymissä on aina kykyinen kenttä, joka todistaa, että ne ovat ilmentymiä "Minä pystyn siihen..." ” (3) Rajapinnat voidaan toteuttaa useita kertoja, ja abstraktit luokat voi periytyä vain yhdelle henkilölle (4) Abstraktit luokat määritellään paremmin läheisesti sukuun liittyvien luokkien sarjan välillä, kun taas suurin osa rajapinnoista on löyhästi sukua olevia luokkia, jotka kaikki toteuttavat tietyn funktion (5) Abstraktit luokat ovat käsitteitä, jotka on abstraktoitu sarjasta toisiinsa liittyviä objekteja, joten ne heijastavat asioiden sisäistä yhteisyyttä; Rajapinta on funktionaalinen konventio, joka on määritelty tyydyttämään ulkoiset kutsut, joten se heijastaa asioiden ulkoisia ominaisuuksia (6) Rajapinnalla ei käytännössä ole mitään erityisiä periytymisen ominaisuuksia, se lupaa vain menetelmiä, joita voidaan kutsua (7) Rajapintoja voidaan käyttää takaisinkutsujen tukemiseen, mutta perinnössä tätä ominaisuutta ei ole (8) Abstraktien luokkien toteuttamat metodit ovat oletuksena virtuaalisia, mutta rajapinnan rajapintametodit, jotka toteuttavat rajapinnan, ovat oletuksena ei-virtuaalisia, tietenkin voit myös julistaa ne virtuaalisiksi (9) Jos abstrakti luokka toteuttaa rajapinnan, rajapinnan metodi voidaan kartoittaa abstraktiin luokkaan abstraktina metodina ilman, että sitä tarvitsee toteuttaa, ja rajapinnan metodi voidaan toteuttaa abstraktin luokan aliluokassa
|