Perbedaan antara kelas Abstrak dan Antarmuka dalam C #

Kelas Abstrak

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

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.

Perbedaan Antara kelas Abstrak dan Antarmuka

  1. Kelas abstrak dapat memiliki anggota abstrak maupun non-abstrak. Tetapi, dalam sebuah antarmuka, semua anggota secara abstrak tersirat dan harus ditimpa dalam kelas turunan.
  2. Kelas dapat mewarisi beberapa antarmuka tetapi hanya satu kelas abstrak.
  3. Kelas abstrak dapat berisi metode dengan atau dengan definisi. Tapi, antarmuka hanya bisa berisi metode tanda tangan.
  4. Kelas abstrak dapat sepenuhnya, sebagian atau tidak diimplementasikan sama sekali, tetapi sebuah antarmuka harus sepenuhnya diimplementasikan, yaitu, semua anggota harus didefinisikan dalam kelas turunan.
  5. Antarmuka tidak dapat berisi pengubah akses, tetapi kelas abstrak dapat memilikinya untuk fungsi, properti, atau acara.
ITU