Az absztrakt osztály az, amelyet csak más osztályok alapelemeként szánnak. Az 'elvont' módosítóval osztály osztályozható. Egy absztrakt módosító jelzi, hogy hiányzik néhány végrehajtás, amelyet be kell vezetni az abból származó osztályba. Az absztrakt osztály tagjai absztrakt és nem absztrakt lehetnek. Az absztrakt osztálynak legalább egy elvont módszerrel kell rendelkeznie, különben nincs értelme azt az osztályot „elvontnak” nyilvánítani.
Példa a C absztrakt osztályra:
Mint a fenti példában látható, a MyCircle osztályon belüli absztrakt 'Area' módszer felülbírálásra kerül a származtatott MyArea osztályban.
Az interfész csak a tagok deklarációját tartalmazza, beleértve a módszereket, tulajdonságokat, eseményeket vagy indexelőket. Nem tartalmazza a tagok végrehajtását. Egy osztály vagy struktúra megvalósítja a felületet, megadnia kell a felületen deklarált módszerek meghatározását. Ez azt jelenti, hogy egy interfész biztosít egy olyan általános struktúrát, amelyet a származtatott osztálynak követnie kell.
Példa egy interfészre a C # -ben:
Mint a fenti példában látható, a MyData interfésznek két módszer deklarálása a getdata () és a showdata (). A NameData osztálynak, aki ezt a felületet megvalósítja, meg kell adnia a MyData felületen deklarált módszerek meghatározását.