En abstrakt klasse er en, der kun er beregnet til at være en baseklasse for andre klasser. Den 'abstrakte' modifikator bruges til at fremstille en klassesabstrakt. En abstrakt modifikator angiver, at der er en vis manglende implementering, der skal implementeres i klassen, der er afledt af den. Den abstrakte klasse kan have abstrakte og ikke-abstrakte medlemmer. En abstrakt klasse skal have mindst én abstrakt metode, ellers er der ingen brug af at erklære denne klasse som 'abstrakt'.
Eksempel på abstrakt klasse i C #:
Som vist i ovenstående eksempel overstyres den abstrakte metode 'Område' inde i MyCircle-klassen i den afledte klasse MyArea.
En grænseflade indeholder kun erklæringen af medlemmer, herunder metoder, egenskaber, begivenheder eller indeksere. Det indeholder ikke implementeringen af disse medlemmer. En klasse eller struktur implementerer grænsefladen, skal give definitionen af metoder, der er erklæret i grænsefladen. Det betyder, at en grænseflade giver en standardstruktur, som den afledte klasse skal følge.
Eksempel på en grænseflade i C #:
Som vist i ovenstående eksempel har grænsefladen MyData to metodedeklarations-getdata () og showdata (). Klassen NameData, der implementerer denne grænseflade, skal give definitionen af metoder, der er erklæret i MyData-grænsefladen.