Kelas abstrak adalah kelas yang dimaksudkan hanya untuk menjadi kelas dasar dari kelas lain. Pengubah 'abstrak' digunakan untuk membuat abstrak kelas. Pengubah abstrak menunjukkan bahwa ada beberapa implementasi yang hilang yang perlu diimplementasikan di kelas yang diturunkan darinya. Kelas abstrak dapat memiliki anggota abstrak dan non-abstrak. Kelas abstrak harus memiliki setidaknya satu metode abstrak, jika tidak, tidak ada gunanya menyatakan kelas itu sebagai 'abstrak.'
Contoh Kelas Abstrak dalam C #:
Seperti yang ditunjukkan pada contoh di atas, metode abstrak 'Area' di dalam kelas MyCircle ditimpa dalam kelas turunan MyArea.
Antarmuka hanya berisi deklarasi anggota termasuk metode, properti, peristiwa atau pengindeks. Itu tidak mengandung implementasi anggota ini. Kelas atau struct mengimplementasikan antarmuka, harus memberikan definisi metode yang dinyatakan dalam antarmuka. Itu berarti sebuah antarmuka menyediakan struktur standar yang harus diikuti oleh kelas turunan.
Contoh Antarmuka dalam C #:
Seperti yang ditunjukkan pada contoh di atas, antarmuka MyData memiliki dua metode getdata () dan showdata (). Kelas NameData yang mengimplementasikan antarmuka ini harus memberikan definisi metode yang dinyatakan dalam antarmuka MyData.