![Abstract Class vs Interface di Java - Java Console](https://i.ytimg.com/vi/AJ82_5WQmRQ/hqdefault.jpg)
Isi
Perbedaan utama
Perbedaan utama antara kelas abstrak dan antarmuka adalah bahwa prosedur antarmuka Java pada dasarnya abstrak dan tidak dapat memiliki aplikasi. Jadi secara luas menyatakan, antarmuka sebenarnya adalah kontrak dan ketika kita berbicara tentang antarmuka, itu berlaku bahwa metode tidak memiliki tubuh, itu hanya sebuah pola. Sedangkan kelas abstrak pada dasarnya adalah kelas yang mahal untuk digunakan. Kelas dan antarmuka abstrak adalah konsep yang sepenuhnya berbeda, ini adalah dua hal yang berbeda tetapi kadang-kadang implementasinya sangat mirip.
Apa itu kelas abstrak?
Kelas abstrak tidak sepenuhnya tersirat oleh programmer. Kelas abstrak mungkin memiliki satu atau lebih metode abstrak. Mereka berguna untuk memodelkan pengelompokan kelas atau peringkat dan sementara saat ini sedang dilakukan, programmer mendapatkan ide tentang apa yang harus dibangun setelah melihat persyaratan. Kelas abstrak tidak dapat diandalkan sepenuhnya karena tidak memiliki beberapa bagian. Poin utama di balik argumen ini adalah, kelas abstrak berorientasi objek ketat, meskipun memiliki metode menuju tetapi tidak ada tubuh. Ketika kita berbicara tentang kelas abstrak, ada hubungan yang kuat antara dua kelas, karena kelas tesis ini cenderung untuk mendapatkan atau mewarisi dari satu sama lain.
Apa itu Antarmuka?
Ketika kita berbicara tentang antarmuka, sebaliknya maka hubungan atau komunikasi antara antarmuka itu sendiri dan kelas yang menyiratkan antarmuka tidak sekuat di kelas abstrak. Kelas Java dapat mengimplementasikan banyak antarmuka tetapi dapat mewarisi dari satu kelas abstrak. Jadi, itu berarti bahwa ketika Anda ingin menyiratkan banyak interaksi pada satu waktu maka antarmuka adalah hal Anda. Terlepas dari seluruh skenario ini, bahkan ketika Anda tidak ingin API berubah untuk sementara waktu maka antarmuka adalah pilihan terbaik untuk Anda. Antarmuka sebenarnya adalah kontrak antara dua objek yang berbeda. Singkatnya, antarmuka berputar di sekitar fungsi.
Perbedaan utama
- Kelas abstrak berorientasi objek sedangkan antarmuka berorientasi fungsi.
- Ketika Anda ingin API tetap konstan untuk sementara waktu maka Anda memilih antarmuka daripada kelas abstrak.
- Banyak warisan dapat diperoleh dengan menyiratkan banyak antarmuka. Sementara di kelas abstrak, Anda tidak bisa mendapatkan banyak warisan.
- Jika Anda memiliki getaran yang Anda di masa depan Anda perlu menambahkan metode dalam pekerjaan Anda maka kelas abstrak dipilih, bukan antarmuka.
- Kelas abstrak memberikan aplikasi kelas dasar yang umum tetapi tidak ada yang terjadi di antarmuka.
- Dalam antarmuka, semua metode yang Anda implementasikan bersifat publik tetapi dalam kelas abstrak Anda juga dapat menerapkan beberapa metode non-publik.
- Konstruktor tidak ada di antarmuka tetapi mereka terjadi di kelas abstrak.
- Anggota lengkap dari kelas abstrak bisa statis tetapi tidak dari antarmuka.