Jumat, 01 April 2016

Perbedaan Abstract Class dan Interface (Java)

Abstract Class adalah sebuah class pada posisi hierarki tertinggi karena harus diimplementasikan pada sub classnya. Kelas abstrak adalah kelas yang belum jelas spesifikasinya, kelas ini memiliki abstract method yang harus diimplementasikan ulang (override) pada subclassnya. Namun, dalam kelas ini bisa saja terdapat concrete method. Abstract method adalah method kosong atau belum diimplementasikan. Abstract class tidak dapat di instansiasi. Keyword yang biasanya digunakan adalah extends, yaitu untuk memanggil fungsi dari kelas lain karena abstract method dalam abstract class harus di override.

Interface adalah sebuah class yang hanya memiliki method kosong, method yang tidak ada implementasinya dan semua property yang dimiliki bersifat final. Dalam kelas interface, semuanya adalah abstract method dan tidak bisa dimasukkan concrete method. Ini adalah salah satu hal yang membedakan antara abstract class dan interface class. Tipe data yang digunakan dalam interface adalah tipe konstanta. Semua variabel dalam interface secara otomatis adalah static final. Interface dapat diturunkan pada class yang ingin menggunakan denagn keyword extends. Dan mengimplementasi class interface yang lain denagn keyword implements. Interface memungkinkan multiple inheritance (pewarisan jamak) pada java.