Abstrakti luokka on luokka, joka on tarkoitettu vain muiden luokkien perustaksi. 'Abstrakti'muokkainta käytetään luokan abstraktiksi tekemiseen. Abstrakti modifikaattori osoittaa, että jonkin verran toteutusta puuttuu, joka on toteutettava siitä johdetussa luokassa. Abstraktissa luokassa voi olla abstrakteja ja ei-abstrakteja jäseniä. Abstraktissa luokassa tulisi olla ainakin yksi abstrakti menetelmä, muuten ei ole tarvetta julistaa luokkaa abstraktiksi.
Esimerkki abstraktista luokasta C #:
Kuten yllä olevassa esimerkissä esitetään, MyCircle-luokan sisällä oleva abstrakti menetelmä 'Alue' on korvattu johdetussa luokassa MyArea.
Rajapinta sisältää vain jäsenten ilmoitukset, mukaan lukien menetelmät, ominaisuudet, tapahtumat tai indeksoijat. Se ei sisällä näiden jäsenten toteutusta. Luokka tai rakenne toteuttaa rajapinnan, sen on tarjottava rajapinnassa ilmoitetut menetelmät. Tämä tarkoittaa, että käyttöliittymä tarjoaa vakiorakenteen, jota johdetun luokan on noudatettava.
Esimerkki C # -rajapinnasta:
Kuten yllä olevassa esimerkissä näkyy, käyttöliittymässä MyData on kaksi menetelmäilmoitusta getdata () ja showdata (). Tämän rajapinnan toteuttavan luokan NameData tulisi määritellä MyData-käyttöliittymässä ilmoitetut menetelmät.