Kelas Abstract (Abstract Class)
Kelas abstrak adalah kelas yang terletak di posisi
tertinggi dalam hierarki class. Kelas ini tidak dapat di instansiasi karena
masih bersifat abstrak. Kelas ini hanya berisi variable – variable umum dan
deklarasi method tanpa detail implementasi. Selanjutnya kelas – kelas yang
menjadi turunan dari kelas abstraklah yang akan mengimplementasikan method –
method tanpa implementasi tersebut.
Kelas abstrak dideklarasikan menggunakan keyword
abstract. Abstract method merupakan suatu method
yang tidak mempunyai badan
method. Hanya berupa nama method dan parameter inputan method. Ketika suatu
abstract class diturunkan / di-extends, maka subclass harus
mengimplementasikan semua method abstract pada parent/ base class. Jika tidak
mengimplementasikan semua method abstract maka subclass harus dideklarasikan
sebagai abstract class. Method abstrak ditandai
dengan modifier abstract, tidak
memiliki implementasi, dan diakhiri dengan tanda titik koma ( ; ).
public void myAbstractMethod();
Interface
Interface
memungkinkan pemrogram untuk berbagi konstanta atau menentukan bentuk metode
yang dapat digunakan oleh sejumlah kelas. Interface adalah
kumpulan method yang hanya memuat deklarasi dan struktur method, tanpa detail
implementasinya. Sedangkan detail dari method berada pada class yang
mengimplementasikan interface tersebut. Interface digunakan bila Anda ingin
mengaplikasikan suatu method yang spesifik, yang tidak diperoleh dari proses
inheritance. Tipe data yang boleh pada interface hanya tipe data konstan. Interface adalah sebuah blok yang berisi deklarasi
metode saja untuk diimplementasikan pada class lain. Jadi, metode yang ada di
dalam interface tidak memiliki kode program (bersifat abstract).
Dalam
Ananda dkk.(2009:73) dijelaskan bahwa “interface adalah prototype kelas yang
berisi definisi konstanta dan deklarasi method (hanya nama method tanpa
definisi kode programnya). Dalam sebuah interface didapatkan sifat-sifat
berikut: semua atribut pada interface adalah public, static, dan final;
semua method adalah abstract dan public; tidak boleh ada
deklarasi konstruktor. Interface digunakan untuk menyatakan spesifikasi
fungsional beberapa kelas secara umum. Dengan adanya interface, Java
menyediakan sebuah fitur untuk keperluan pewarisan jamak (multiple
inheritance).
Pendefinisian
sebuah diagram kelas yang bersifat interface mirip dengan kelas abstrak.
Perbedaannya terletak pada kata kunci yang digunakan yaitu interface. Diagram
kelas di bawah ini adalah diagram kelas dari sebuah interface.
Sementara itu kata kunci implements digunakan untuk mengimplementasikan sebuah interface
yang bersangkutan.
Mendeklarasikan method dalam interface mirip dengan
mendeklarasikan method abstract, dimana deklarasi method tidak diakhiri
pasangan kurung kurawal, melainkan tanda titik koma (;) return - type
namaMethod ([daftar parameter]). Field field yang didefinisikan pada
interface secara otomatis bersifat static dan final, yang berarti mereka hanya bertindak
sebagai konstanta.
Ø
Perbedaan antara interface
dengan kelas abstrak :
Abstract Class
|
Interface
|
Bisa berisi
abstract dan non abstract method
|
Hanya boleh
berisi abstract method
|
Harus menuliskan
sendiri modifiernya
|
Tidak perlu
susah-susah menulis public abstract di depan nama methid. Karena secara
implisit, modifier untuk method di interface adalah public dan abstract
|
Bisa
mendeklarasikan constant dan instance variable
|
Hanya bisa
mendeklarasikan constant. Secara implisit variable yang dideklarasikan di
interface bersifat public, static dan final
|
Method boleh
bersifat static
|
Method tidak
boleh bersifat static
|
Method boleh
bersifat final
|
Method tidak
boleh bersifat final
|
Suatu abstract
class hanya bisa meng-extend satu abstract class lainnya
|
Suatu interface
bisa meng-extend satu atau lebih interface lainnya
|
Suatu abstract
class hanya bisa meng-extend satu
abstract class dan meng-implement beberapa
interface
|
Suatu interface
hanya bisa meng-extend interface
lainnya. Dan tidak bisa meng-implement
class atau interface lainnya
|
Abstract class
dapat memiliki tipe data dengan semua tipe data
|
Interface tipe
datanya hanya berupa konstanta
|
Abstract classdengan keyword abstract
|
Interface dideklarasikan dengan keyword
interface
|
Abctract class dapatdiimplementasikan
|
Interface tidak memiliki implementasii
|
Abstract method harus meng-override semua
abstract method dan mungkinmeng-override
method-method virtual.
|
Interface hanya bias digunakan bila implementasinya
berubah
|
Abstract class dapat digunakan bila meng-implementasi framework
|
Interface meningkatkan keamanan dengan
menyembunyikan implementasinya
|
Polymorphism
Polymorphism merupakan konsep sederhana dalam
bahasa pemrograman berorientasi obyek yang berarti kemampuan sebuah obyek untuk
menghasilkan aksi yang berbeda, bila method yang sama dipanggil, dimana aksi
method yang dikerjakan tergantung dari tipe obyeknya.
Polymorphism
terbagi menjadi 2 bagian yaitu :
a.
Function Overloading.
Function yang bisa
dideklarasikan lebih dari 1 kali dengan menggunakan nama yang sama namun
menggunakan parameter yang berbeda.
b.
Function overriding.
Kemampuan
suatu objek untuk menjalankan/memanggil method dengan cara yang berbeda.
Kondisi yang harus dipenuhi supaya polimorfisme dapat
diimplementasikan adalah :
-
Method yang dipanggil harus melalui variable dari
basis class atau superclass
-
Method yang dipanggil harus juga menjadi method dari basis class.
-
Signature method harus sama baik pada superclass maupun subclass.
-
Method access attribute pada subclass tidak boleh
lebih terbatas dari basis class.
Kegunaan
dari polimorfisme adalah agar kita dapat mendefinisikan beberapa konstruktor
atau metode dengan karakteristik yang berbeda – beda agar nantinya dapat
digunakan untuk kasus – kasus yang berbeda.
fungsi abstrak dan interface masih 50% keliatan
ReplyDelete