Abstract class adalah kelas yang terletak pada posisi tertinggi pada hierarki kelas. Kelas ini digunakan sebagai basis bagi penurunan kelas lainnya, sehingga abstract class tidak dapat di instansiasi secara langsung menjadi object.
Concrete Class
Concrete class java adalah kelas seperti itu yang memiliki implementasi dari semua anggota yang diwarisinya baik dari kelas antarmuka atau abstrak, dapat disimpulkan bahwa concrete class selain dari abstract class dan interface.
- Dapat membentuk atau instansiasi object
- Dapat menurunkan implementasi dari super class
- Dapat sebagai base class pada hierarchical relationship dan membutuhkan class lain untuk mewarisinya
Interface
Interface adalah sebuah tipe referensi pada Java. Interface secara struktur serupa dengan class. Isi dari interface adalah method abstract, artinya method hanya dideklarasikan tidak ditulis secara utuh. Deklarasi method pada interface serupa dengan method pada class abstract.
Penggunaan Abstract Class
Sebagai contoh, kita akan membuat superclass bernama Makhluk Hidup. Class ini mempunyai method tertentu seperti bernafas, makan, tidur, dan berjalan. Akan tetapi, ada beberapa method di dalam superclass yang sifatnya tidak dapat digeneralisasi. Kita ambil contoh, method "berjalan".
Tidak semua kehidupan "berjalan" dalam cara yang sama. Manusia sebagai contohnya, kita manusia berjalan dengan dua kaki, dimana kehidupan lainnya seperti anjing atau kucing berjalan dengan empat kaki. Akan tetapi, beberapa ciri umum dalam kehidupan sudah biasa, itulah kenapa kita inginkan membuat superclass umum dalam hal ini.
Penggunaan Interface
Kita akan menggunakan interface jika kita ingin class yang tidak berhubungan mengimplementasikan method yang sama. Melalui interface-interface, kita dapat menangkap kemiripan diantara class yang tidak berhubungan tanpa membuatnya seolah-olah class yang berhubungan.