Perbezaan antara kelas abstrak dan antara muka dalam C#

Perbezaan antara kelas abstrak dan antara muka dalam C#

Kelas Abstrak

Kelas abstrak adalah salah satu yang hanya bertujuan untuk menjadi kelas asas kelas lain. Pengubah 'Abstrak' digunakan untuk membuat kelas abstrak. Pengubahsuaian abstrak menunjukkan bahawa terdapat beberapa pelaksanaan yang hilang yang perlu dilaksanakan di kelas yang diperoleh daripadanya. Kelas abstrak boleh mempunyai ahli abstrak dan tidak abstrak. Kelas abstrak harus mempunyai sekurang -kurangnya satu kaedah abstrak, jika tidak, tidak ada penggunaan mengisytiharkan kelas itu sebagai 'abstrak.'

Contoh kelas abstrak di C#:
Seperti yang ditunjukkan dalam contoh di atas, kawasan 'Kawasan' Abstrak di dalam kelas Mycircle ditindih dalam kelas myarea yang diperolehi.

Antara muka

Antara muka hanya mengandungi pengisytiharan ahli termasuk kaedah, sifat, peristiwa atau pengindeks. Ia tidak mengandungi pelaksanaan ahli -ahli ini. Kelas atau struct melaksanakan antara muka, mesti memberikan definisi kaedah yang diisytiharkan di antara muka. Ini bermakna antara muka menyediakan struktur standard yang perlu diikuti oleh kelas yang diperolehi.

Contoh antara muka dalam C#:
Seperti yang ditunjukkan dalam contoh di atas, antara muka myData mempunyai dua kaedah pengisytiharan getData () dan showdata (). Namedata kelas yang melaksanakan antara muka ini harus memberikan definisi kaedah yang diisytiharkan dalam antara muka myData.

Perbezaan antara kelas abstrak dan antara muka

  1. Kelas abstrak boleh mempunyai ahli abstrak dan tidak abstrak. Tetapi, dalam antara muka, semua ahli secara tersirat abstrak dan mesti ditindih dalam kelas yang diperoleh.
  2. Kelas mungkin mewarisi beberapa antara muka tetapi hanya satu kelas abstrak.
  3. Kelas abstrak boleh mengandungi kaedah dengan atau dengan definisi. Tetapi, antara muka hanya boleh mengandungi tanda tangan kaedah.
  4. Kelas abstrak boleh sepenuhnya, sebahagian atau tidak dilaksanakan sama sekali, tetapi antara muka harus dilaksanakan sepenuhnya, i.e., Semua ahli mesti ditakrifkan dalam kelas yang diperoleh.
  5. Antara muka tidak boleh mengandungi pengubah akses, tetapi kelas abstrak boleh memilikinya untuk fungsi, sifat atau peristiwa.