Perbezaan antara kelas abstrak dan antara muka di Java

Perbezaan antara kelas abstrak dan antara muka di Java

Kelas Abstrak Vs Interface di Java

Untuk memahami perbezaan antara kelas abstrak dan antara muka di Jawa, penting untuk, pertama sekali, memahami setiap ini secara bebas. Kelas Abstrak di Java digunakan dalam pengisytiharan subkelas dengan satu set ciri umum. Penggunaan biasa kelas abstrak adalah kelas super kelas lain yang, pada dasarnya, membolehkannya melanjutkan kelas abstrak. Kata kunci abstrak digunakan dalam pengisytiharan kelas abstrak. Sama seperti mana -mana kelas lain, kelas abstrak mempunyai bidang yang menggambarkan kaedah dan ciri -ciri yang boleh dilakukan oleh kelas. Dengan perisytiharan kelas abstrak semata -mata, kelas tidak dapat dimulakan

Antara muka Java boleh disamakan dengan protokol. Ia mewakili tingkah laku pratetap dan dipersetujui yang membolehkan fasilitasi interaksi objek yang tidak berkaitan. Bergantung pada pengguna, antara muka memegang kunci kepada tindakan yang berbeza yang dilaksanakan. Oleh itu, antara muka berfungsi sebagai hubungan antara pengeluar dan pengguna. Antara muka di Jawa adalah, oleh itu, sekumpulan kaedah yang mengandungi badan kosong yang mungkin mempunyai pengisytiharan yang berterusan. Dalam mendedahkan kelas ke antara muka Java, ini bermakna tingkah laku yang diharapkan dari kelas adalah pelaksanaan semua kaedah antara muka.


Perbezaan

Pertama, kelas abstrak membolehkan bidang yang tidak statik atau muktamad berbanding dengan bidang statik dan akhir yang digunakan dalam antara muka. Antara muka tidak boleh mempunyai sebarang kod pelaksanaan yang digunakan di dalamnya, dan mungkin terdapat kod pelaksanaan yang digunakan dalam kelas abstrak. Kod pelaksanaan yang dilancarkan di kelas abstrak boleh mempunyai beberapa atau semua kaedah yang dilaksanakan. Secara lalai, semua kaedah antara muka adalah "Abstrak."

Keterlihatan juga mungkin untuk kaedah atau ahli kelas abstrak yang boleh berbeza -beza seperti orang awam, dilindungi, swasta, atau tidak. Keterlihatan antara muka, sebaliknya, hanya boleh dipratetap kepada satu cara penglihatan yang "awam.'"

Kelas abstrak secara automatik akan mewarisi kelas objek secara automatik. Ini, sebenarnya, bermakna kaedah seperti klon () dan sama dengan () dimasukkan. Dalam antara muka, tidak ada warisan kelas objek yang mungkin. Berikutan itu, kelas abstrak mempunyai keupayaan mempunyai pembina, tetapi antara muka tidak boleh mempunyai satu.

Antara muka di Java juga mempunyai fungsi yang sangat penting dengan pelaksanaan pelbagai warisan kerana kelas hanya boleh mempunyai satu kelas super. Walaupun hanya satu kelas super yang dapat hadir, ia dapat dilaksanakan dalam jumlah antara muka. Tidak mungkin mempunyai banyak warisan dalam kelas abstrak.

Dalam prestasi, antara muka cenderung lebih perlahan dalam pelaksanaan yang bertentangan dengan kelas abstrak terutamanya disebabkan oleh arah tambahan mencari kaedah yang sepadan dalam kelas. Perbezaannya, bagaimanapun, telah menjadi lebih perlahan kerana mesin maya Java moden yang terus ditingkatkan.

Menambah kaedah dalam antara muka memerlukan anda menjejaki semua kelas pelaksanaan yang melaksanakan antara muka tertentu. Sebagai alternatif, anda boleh melanjutkan antara muka untuk membolehkannya mempunyai kaedah tambahan. Sekiranya anda berhadapan dengan kelas abstrak, semua yang diperlukan adalah untuk menambah pelaksanaan lalai kaedah dan kod terus berfungsi. Oleh kerana perbezaan antara kelas abstrak dan antara muka, penting untuk diperhatikan bahawa mereka bukan pesaing, tetapi perbezaan yang disebutkan di sini berfungsi untuk melengkapi antara satu sama lain.  

Ringkasan

  1. Bidang kelas abstrak tidak statik atau muktamad berbanding antara muka yang mempunyai jadual statik dan akhir.

  2. Tiada kod pelaksanaan boleh digunakan dalam antara muka sementara ia boleh digunakan dalam kelas abstrak.

  3. Penglihatan antara muka hanya boleh dipublikasikan manakala penglihatan kelas abstrak boleh berbeza -beza.

  4. Kelas abstrak secara automatik akan mewarisi kelas objek, tetapi tidak mungkin dalam antara muka.

  5. Kelas abstrak lebih cepat daripada antara muka dalam pelaksanaan.