Klasa abstrakcyjna to klasa, która ma być jedynie klasą bazową innych klas. Modyfikator „abstrakcyjny” służy do tworzenia abstraktu klasowego. Modyfikator abstrakcyjny wskazuje, że brakuje pewnej implementacji, którą należy zaimplementować w klasie pochodnej. Klasa abstrakcyjna może mieć elementy abstrakcyjne i nieabstrakcyjne. Klasa abstrakcyjna powinna mieć co najmniej jedną metodę abstrakcyjną, w przeciwnym razie nie ma potrzeby deklarowania tej klasy jako „abstrakcyjnej”.
Przykład klasy abstrakcyjnej w C #:
Jak pokazano w powyższym przykładzie, abstrakcyjna metoda „Area” wewnątrz klasy MyCircle jest zastępowana w klasie pochodnej MyArea.
Interfejs zawiera tylko deklarację członków, w tym metody, właściwości, zdarzenia lub indeksatory. Nie zawiera implementacji tych członków. Klasa lub struktura implementuje interfejs, musi zawierać definicję metod zadeklarowanych w interfejsie. Oznacza to, że interfejs zapewnia standardową strukturę, którą musi przestrzegać klasa pochodna.
Przykład interfejsu w C #:
Jak pokazano w powyższym przykładzie interfejs MyData ma dwie deklaracje metod getdata () i showdata (). Klasa NameData, która implementuje ten interfejs, powinna podać definicję metod zadeklarowanych w interfejsie MyData.