Perbedaan Antara Kelas dan Antarmuka Abstrak di Jawa Perbedaan Antara

Anonim

Abstract Class vs Interface Di Jawa

Untuk memahami perbedaan antara kelas abstrak dan antarmuka di Jawa, penting untuk pertama-tama memahami masing-masing secara independen. Kelas abstrak di Jawa digunakan dalam deklarasi subclass dengan seperangkat karakteristik umum. Penggunaan umum kelas abstrak adalah kelas super kelas lain yang, pada dasarnya, memungkinkannya untuk memperluas kelas abstrak. Kata kunci abstrak digunakan dalam deklarasi kelas abstrak. Sama seperti kelas lainnya, kelas abstrak memiliki bidang yang menggambarkan metode dan karakteristik yang dapat dilakukan kelas. Dengan sekedar deklarasi kelas abstrak, kelas tidak dapat dimulai

Antarmuka Java dapat disamakan dengan sebuah protokol. Ini mewakili perilaku preset dan disepakati yang memungkinkan fasilitasi interaksi objek yang tidak terkait. Bergantung pada pengguna, antarmuka memegang kunci berbagai tindakan yang sedang diterapkan. Antarmuka, oleh karena itu, berfungsi sebagai penghubung antara produsen dan konsumen. Antarmuka di Jawa adalah, dengan demikian, sekelompok metode yang berisi benda-benda kosong yang mungkin memiliki deklarasi konstan. Dalam mengekspos kelas ke antarmuka Java, ini berarti bahwa perilaku yang diharapkan dari kelas adalah implementasi semua metode antarmuka.

Perbedaan

Pertama, kelas abstrak memungkinkan bidang yang tidak statis atau final dibandingkan dengan bidang statis dan akhir yang digunakan dalam antarmuka. Antarmuka tidak dapat memiliki kode implementasi yang digunakan di dalamnya, dan mungkin ada kode implementasi yang digunakan di kelas abstrak. Kode Implementasi yang diluncurkan di kelas abstrak dapat memiliki beberapa atau semua metode yang diterapkan. Secara default, semua metode antarmuka "abstrak. "

Visibilitas juga dimungkinkan untuk metode atau anggota kelas abstrak yang dapat bervariasi seperti publik, dilindungi, pribadi, atau tidak sama sekali. Visibilitas antarmuka, di sisi lain, hanya dapat disetel ke satu cara pandang yang "umum. '"

Kelas abstrak akan secara otomatis mewarisi kelas objek. Ini, pada dasarnya, berarti bahwa metode seperti kloning () dan sama dengan () disertakan. Dalam sebuah antarmuka, tidak ada warisan kelas objek yang mungkin dilakukan. Setelah ini, kelas abstrak memiliki kemampuan untuk memiliki konstruktor, namun sebuah antarmuka tidak dapat memilikinya.

Antarmuka di Jawa juga memiliki fungsi yang sangat penting dengan penerapan multiple inheritance karena kelas hanya bisa memiliki satu kelas super. Meski hanya satu kelas super yang bisa hadir, bisa diimplementasikan dalam jumlah antarmuka apa saja. Tidak mungkin memiliki banyak warisan di 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. Bedanya, bagaimanapun, telah menjadi lebih lambat karena mesin virtual Java modern yang terus ditingkatkan.

Menambahkan sebuah metode pada sebuah antarmuka mengharuskan Anda untuk melacak semua kelas pelaksana yang menerapkan antarmuka spesifik. Sebagai alternatif, Anda dapat memperpanjang antarmuka sehingga memungkinkannya memiliki metode tambahan. Jika Anda kebetulan berurusan dengan kelas abstrak, semua yang diperlukan adalah menambahkan penerapan metode default dan kode tersebut terus berfungsi. Karena ada perbedaan antara kelas abstrak dan antarmuka, penting untuk dicatat bahwa mereka bukan saingan, namun perbedaan yang disebutkan di sini saling melengkapi.

Ringkasan

  1. Bidang kelas abstrak tidak statis atau final dibandingkan dengan antarmuka yang memiliki tabel statis dan akhir.

  2. Tidak ada kode implementasi yang dapat digunakan dalam antarmuka sementara bisa digunakan di kelas abstrak.

  3. Visibilitas antarmuka hanya bisa bersifat publik sementara visibilitas kelas abstrak dapat bervariasi.

  4. Kelas abstrak akan secara otomatis mewarisi kelas objek, namun tidak mungkin di antarmuka.

  5. Kelas abstrak lebih cepat dari pada antarmuka dalam implementasi.