Logo ms.removalsclassifieds.com

Perbezaan Antara Kelas Abstrak dan Antara Muka dalam C# (Dengan Jadual)

Isi kandungan:

Anonim

Apabila mereka bentuk aplikasi atau memulakan kerjaya pengaturcaraan, adalah perlu untuk mengetahui perbezaan antara Kelas Abstrak dan Antara Muka dalam C#. Kedua-dua kelas abstrak dan antara muka digunakan untuk mencapai abstraksi di mana seseorang boleh memahami kaedah abstrak. Walaupun kedua-duanya tidak boleh digunakan pada masa yang sama.

Kelas dan antara muka abstrak mungkin kelihatan serupa dalam beberapa cara tetapi terdapat perbezaan utama yang membantu untuk menentukan pilihan terbaik untuk seseorang mencapai matlamat tertentu yang berkaitan dengan pengaturcaraan.

Seseorang tidak sepatutnya berniat untuk menggunakan kelas Abstrak secara langsung. Kelas ini mesti mempunyai satu kaedah abstrak sekurang-kurangnya. Dan ia akan ditandakan dengan kata kunci atau abstrak pengubah suai dalam definisi kelas. Sebaliknya, antara muka hanya membenarkan seseorang untuk menentukan fungsi. Ia tidak boleh dilaksanakan. Walaupun kelas boleh membangunkan hanya satu kelas abstrak, ia juga boleh memanfaatkan pelbagai antara muka.

Kelas Abstrak vs Antara Muka dalam C#

The perbezaan antara Kelas Abstrak dan Antara Muka dalam C# ialah fungsi "Utama" kelas abstrak adalah untuk menerangkan identiti sebenar kelas manakala fungsi utama antara muka adalah untuk menerangkan kemungkinan luar kelas. Abstraksi penuh tidak disediakan oleh kelas abstrak manakala antara muka boleh memberikan abstraksi penuh.

Warisan berbilang tidak mungkin dalam kelas abstrak manakala antara muka boleh membuat warisan berbilang mungkin.

Jadual Perbandingan Antara Kelas Abstrak dan Antara Muka dalam C#

Parameter Perbandingan Kelas Abstrak Antara muka dalam C#
Kefungsian Menambah kaedah baharu pada kelas abstrak akan memberi pilihan untuk menyediakan pelaksanaan lalai dan dengan itu semua kod semasa akan berfungsi dengan baik Menambah kaedah baharu pada antara muka akan membolehkan untuk menjejaki semua pelaksanaan antara muka dan menentukan pelaksanaan untuk kaedah terkini
Pelbagai pusaka Hanya satu kelas abstrak mungkin diwarisi oleh kelas Beberapa antara muka mungkin diwarisi oleh kelas
Apa yang terkandung di dalamnya? Kelas abstrak mengandungi Ahli Data dan Pembina Antara muka dalam C# tidak mengandungi Ahli Data dan Pembina
Menyediakan Kelas abstrak boleh menyediakan kod lalai penuh dan/atau butiran yang harus ditindih Antara muka dalam C# tidak mampu menyediakan sebarang kod, hanya tandatangan
Kadar pergerakan Kelas abstrak adalah pantas apabila ia berkaitan dengan kelajuan Antara muka dalam C# memerlukan lebih banyak masa untuk mendapatkan kaedah sebenar dalam kelas yang sepadan

Apakah Kelas Abstrak dalam C#?

Kelas abstrak ialah sesuatu yang hanya boleh dimaksudkan untuk menjadi kelas asas kelas lain. Mereka adalah kelas yang mempunyai satu atau lebih kaedah abstrak. Kaedah abstrak dikenali sebagai kaedah yang diumumkan, tetapi ia tidak mengandungi sebarang pelaksanaan.

Untuk membuat kelas, kita perlu menggunakan pengubah suai 'abstrak'. Pengubah suai ini menunjukkan bahawa mungkin terdapat beberapa pelaksanaan yang hilang yang perlu dilaksanakan dalam kelas yang diambil daripadanya. Kedua-dua ahli abstrak dan bukan abstrak boleh terkandung oleh kelas abstrak.

Kelas abstrak ini harus mempunyai satu kaedah abstrak sekurang-kurangnya yang telah dibincangkan di atas. Tanpa kaedah, kami tidak boleh mengisytiharkan kelas itu sebagai kelas "abstrak".

Kadang-kadang kelas abstrak mungkin tidak digunakan, dan mereka memerlukan subkelas untuk menyediakan pelaksanaan bagi kaedah abstrak. Jika kita mencipta kelas abstrak maka kita mencipta kelas asas yang mungkin mengandungi satu atau lebih kaedah yang lengkap tetapi sekurang-kurangnya kita akan mencari satu atau lebih kaedah yang dibiarkan tidak lengkap dan diisytiharkan sebagai abstrak.

Jika semua kaedah kelas abstrak kekal tidak lengkap maka ia akan menjadi antara muka. Untuk menyampaikan definisi kelas asas tentang cara satu set kelas terbitan akan berfungsi dan kemudian biarkan pengaturcara mengisi pelaksanaan dalam kelas terbitan ialah tujuan sebenar kelas abstrak.

Kita juga boleh mengatakan bahawa tujuan kelas abstrak adalah untuk menyediakan definisi kelas asas.

Apakah Antara Muka dalam C#?

Sebaliknya, antara muka bukan kelas yang hanya mempunyai petunjuk kefungsian. Kita boleh memanggilnya sebagai corak tanpa pelaksanaan. Secara teorinya, ia hanya definisi kaedah yang mempunyai pengisytiharan ahli.

Kita boleh menganggapnya sebagai cangkang kosong yang tidak mengandungi pelaksanaan ahlinya. Antara muka adalah seperti kelas asas abstrak yang hanya akan mempunyai ahli abstrak seperti kaedah, pengindeks, peristiwa, sifat, dll.

Menghidupkannya secara langsung tidak mungkin dan ahlinya boleh dilaksanakan oleh mana-mana kelas. Juga, pelbagai antara muka boleh dilaksanakan oleh kelas, namun, kelas hanya boleh memperoleh satu kelas. Dalam erti kata lain, kita boleh mengatakan bahawa antara muka hanya mempunyai pengisytiharan ahli dan ia tidak mengandungi pelaksanaan ahli ini.

Kelas melaksanakan antara muka, dan ia mesti menyampaikan definisi kaedah yang dinyatakan dalam antara muka. Bermaksud antara muka membawa struktur standard yang perlu diikuti oleh kelas terbitan.

Perbezaan Utama Antara Kelas Abstrak dan Antara Muka dalam C#

Soalan Lazim (FAQ) Mengenai Kelas Abstrak dan Antara Muka dalam C#

Apakah kegunaan kelas abstrak dalam C#?

C# ialah bahasa pengaturcaraan berorientasikan objek tujuan umum. Ia daripada Microsoft. Matlamat utama C# adalah untuk menggunakan kuasa pengkomputeran C++ dengan kemudahan pengaturcaraan Asas Maya. Ia terutamanya berdasarkan C++ dan juga mengandungi ciri yang serupa seperti Java.

Kelas abstrak ialah satu cara untuk mencapai abstraksi dalam C# dan ia tidak boleh digunakan secara langsung. Fungsi kelas abstrak adalah untuk mencipta beberapa fungsi atau mencipta gelagat biasa yang subkelas boleh mewarisi, melaksanakan atau mengatasi.

Ia pada asasnya menyediakan pelan tindakan kepada kelas terbitan dan memberi arahan tentang perkara yang perlu dilaksanakan oleh kelas terbitan apabila kelas abstrak diwarisi oleh mereka.

Apakah antara muka dalam C# dan mengapa ia digunakan?

Antara muka dalam C# boleh ditakrifkan sebagai definisi jenis seperti kelas. Tetapi ia hanya menyediakan pengisytiharan dan diwarisi oleh kelas dan struct.

Ia digunakan dengan kelas untuk menentukan kontrak (perjanjian mengenai perkara yang disediakan oleh kelas kepada aplikasi). Ia hanya mengisytiharkan kaedah dan sifat yang berbeza dan kelas akan menentukan kaedah yang sebenarnya akan dilakukan.

Ia tidak boleh dijadikan sebagai objek dan hanya digunakan sebagai koleksi kaedah dan pengisytiharan harta. Ia mentakrifkan operasi yang boleh atau akan dilakukan oleh kelas.

Apakah polimorfisme dalam C#?

Polimorfisme biasanya dinyatakan sebagai satu antara muka dan pelbagai fungsi. Polimorfisme dalam C# bermaksud menyediakan keupayaan untuk mengambil pelbagai bentuk. Selepas pengkapsulan dan pewarisan, ia merupakan satu lagi konsep tonggak pengaturcaraan berorientasikan objek. C# menyediakan keupayaan untuk kelas melaksanakan kaedah berbeza yang biasanya dipanggil dengan nama yang sama.

Terdapat dua jenis polimorfisme dalam C#:

Kesimpulan

Untuk memahami perbezaan antara keduanya adalah tugas yang agak sukar. Kami boleh menggabungkan semua maklumat yang kami dapati dan masih ia tidak mencukupi. Secara teorinya, kedua-duanya adalah istilah yang paling penting dalam pengaturcaraan dan agak serupa, namun dari segi fungsi, mereka banyak berbeza.

Walaupun kelas abstrak ialah jenis kelas tertentu yang akan berfungsi sebagai asas untuk kelas lain, antara muka hanya akan menjadi cangkang kosong dengan hanya pengisytiharan ahli.

Rujukan

Perbezaan Antara Kelas Abstrak dan Antara Muka dalam C# (Dengan Jadual)