Abstrak Kelas vs Antarmuka di Jawa
Untuk memahami perbedaan antara kelas abstrak dan antarmuka di Jawa, penting untuk, pertama-tama, memahami masing-masing secara mandiri. Kelas abstrak di Jawa digunakan dalam deklarasi subclass dengan seperangkat karakteristik umum. Penggunaan umum dari kelas abstrak adalah kelas super dari kelas lain yang, pada dasarnya, memungkinkannya untuk memperluas kelas abstrak. Kata kunci abstrak digunakan dalam deklarasi kelas abstrak. Seperti halnya kelas lain, kelas abstrak memiliki bidang yang menggambarkan metode dan karakteristik yang dapat dilakukan oleh kelas. Hanya dengan deklarasi kelas abstrak, kelas tidak dapat dimulai
Antarmuka Java dapat disamakan dengan protokol. Ini mewakili perilaku yang telah ditetapkan dan disepakati yang memungkinkan untuk memfasilitasi interaksi objek yang tidak terkait. Bergantung pada pengguna, antarmuka memegang kunci untuk berbagai tindakan yang sedang dilaksanakan. Antarmuka, oleh karena itu, berfungsi sebagai penghubung antara produsen dan konsumen. Antarmuka di Jawa, dengan demikian, sekelompok metode yang berisi benda kosong yang mungkin memiliki deklarasi konstan. Dalam mengekspos kelas ke antarmuka Java, itu berarti bahwa perilaku yang diharapkan dari kelas adalah implementasi dari semua metode antarmuka.
Perbedaan
Pertama, kelas abstrak memungkinkan untuk bidang yang tidak statis atau final dibandingkan dengan bidang statis dan final yang digunakan dalam antarmuka. Antarmuka tidak dapat memiliki kode implementasi yang digunakan di dalamnya, dan mungkin ada kode implementasi yang digunakan dalam kelas abstrak. Kode Implementasi yang diluncurkan dalam kelas abstrak dapat memiliki beberapa atau semua metode yang diterapkan. Secara default, semua metode antarmuka adalah "abstrak."
Visibilitas juga dimungkinkan untuk metode atau anggota kelas abstrak yang dapat bervariasi seperti publik, dilindungi, pribadi, atau tidak ada. Visibilitas antarmuka, di sisi lain, hanya dapat diatur ke satu mode visibilitas yaitu "publik."
Kelas abstrak akan secara otomatis mewarisi kelas objek. Ini, pada dasarnya, berarti metode seperti clone () dan equals () disertakan. Dalam sebuah antarmuka, tidak mungkin pewarisan kelas objek. Setelah ini, kelas abstrak memiliki kemampuan memiliki konstruktor, tetapi sebuah antarmuka tidak dapat memilikinya.
Antarmuka di Jawa juga memiliki fungsi yang sangat penting dengan penerapan beberapa pewarisan karena suatu kelas hanya dapat memiliki satu kelas super. Meskipun hanya satu kelas super yang bisa hadir, itu dapat diimplementasikan dalam jumlah antarmuka berapa pun. Tidak mungkin memiliki banyak warisan dalam kelas abstrak.
Dalam kinerja, antarmuka cenderung lebih lambat dalam implementasi dibandingkan dengan kelas abstrak terutama karena arah ekstra untuk menemukan metode yang sesuai di kelas. Perbedaannya, bagaimanapun, menjadi lebih lambat karena mesin virtual Java modern yang terus ditingkatkan.
Menambahkan metode dalam antarmuka mengharuskan Anda melacak semua kelas pelaksana yang mengimplementasikan antarmuka spesifik. Atau, Anda dapat memperluas antarmuka untuk memungkinkannya memiliki metode tambahan. Jika Anda berhadapan dengan kelas abstrak, yang diperlukan hanyalah menambahkan implementasi standar metode dan kode terus berfungsi. Karena ada perbedaan antara kelas abstrak dan antarmuka, penting untuk dicatat bahwa mereka bukan saingan, tetapi perbedaan yang disebutkan di sini berfungsi untuk saling melengkapi.
Ringkasan
Bidang kelas abstrak tidak statis atau final dibandingkan dengan antarmuka yang memiliki tabel statis dan final.
Tidak ada kode implementasi yang dapat digunakan dalam antarmuka sementara itu dapat digunakan dalam kelas abstrak.
Visibilitas antarmuka hanya dapat publik sementara visibilitas kelas abstrak dapat bervariasi.
Kelas abstrak akan secara otomatis mewarisi kelas objek, tetapi tidak dimungkinkan dalam antarmuka.
Kelas abstrak lebih cepat dari antarmuka dalam implementasi.