Abstract, Concrete Class & Interface (Java)
Penjelasan
Abstract, Concrete Class dan Interface pada Java
Abstract
Class
Abstract
Class, Class yang digunakan sebagai rancangan untuk Concrete Class , khusus
dibuat untuk keperluan inheritance. Tujuan dari pembuatan abstract class ini
ialah untuk membuat definisi umum bagi class-class yang akan menjadi turunan
darinya. Abstract Class bias diimplementasikan pada satu atau lebih Interface
dan bisa diturunkan pada Abstract Class lainnya (maksimal 1).
Abstract
Class tidak bisa diinstansiasi. Abstract method tidak mempunyai implementasi,
sehingga
penulisannya dilakukan hanya dengan mengikutkan
semikolon, bukan blok method {} seperti biasanya. Abstract method ini bisa
digunakan oleh Class turunannya dengan melakukan override.
Berikut
ini contoh Abstract Class:
public
abstract class BelowSealevel {
public abstract void dive();
public abstract void surface();
}
Sebuah abstract class pada dasarnya tidak jauh berbeda dengan class lainnya, yakni juga berisi method yang menggambarkan carakteristik dari kelas abstract tersebut, kecuali sebuah abstract class bisa berisi method tanpa diimplementasikan artinya sebuah method tanpa body. Untuk mendeklarasikan sebuah abstract class digunakan keyword abstract, [abstract] class [class_name]
Berikut
ini contoh kasus penggunaan Abstract Class:
Kita
dapat menggambar lingkaran, persegi panjang garis, kurva Bezier dan object
object graphic lainnya Object tersebut Bezier dan object-object graphic
lainnya. Object tersebut mempunyai state tertentu (seperti: position,
orientation, line color, fill color) dan behaviour secara umum(contoh:
moveTo, rotate, resize, draw).Beberapa state dan behavior ini sama untuk semua
resize, draw).
Beberapa
state dan behavior ini sama untuk semua object graphic contoh: position, fill
color, and moveTo. Implementasi yang berbeda sebagai contoh resize or draw.
Semua Object Graphic harus mengetahui bagaimana cara draw dan resize.
Concrete
Class
Concrete
Class merupakan sebuah class, yang mendefinisikan implementasi final rancangan
dari Abstract Super Class, yang dapat membentuk atau menginstansiasi objek.
Jadi intinya, concrete class pada java adalah class manapun yang
mengimplementasikan pewarisan sifat pada Inteface maupun Abstract Class.
Berikut
ini contoh Concrete Class:
public
class USS-Nautilus extends BelowSealevel {
public void dive()
{
}
public void surface()
{
}
}
public
class I-400 extends BelowSealevel {
public void dive()
{
}
public void surface()
{
}
}
Interface
Interface
adalah kumpulan method yang hanya memuat deklarasi dan struktur method,yang
secara filosofis lebih berfungsi sebagai antarmuka yang membentuk komunikasi
dengan code lain, tanpa detail implementasinya. Sedangkan detail dari method
berada pada class yang mengimplementasikan interface tersebut. Interface
digunakan jika ingin mengaplikasikan suatu method yang spesifik, yang tidak
diperoleh dari proses inheritance. Tipe data yang boleh pada interface hanya
tipe data konstan.
Interface
misalnya membentuk hubungan antara sebuah object dengan object yang lain atau
hubungan antara object sebagai penyedia dengan code pengguna. Karena itulah
interface ini banyak digunakan dalam dunia design pattern. Sebab kebanyakan
dari design pattern ini menekankan hubungan antar object.Interface adalah jenis
khusus dari blok yang hanya berisi method signature (atau constant).
Berikut
ini contoh Interface:
public
interface fleet {
public abstract void chain_operation();
public abstract void expedition();
}
Interface
mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa tubuh.
Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan
sifat-sifat dari class-class. Mereka menyediakan class-class, tanpa
memperhatikan lokasinya dalam hirarki class, untuk mengimplementasikan
sifat-sifat yang umum. Dengan catatan bahwa interface-interface juga
menunjukkan polimorfisme, dikarenakan program dapat memanggil method interface
dan versi yang tepat dari method yang akan dieksekusi tergantung dari tipe
object yang melewati pemanggil method interface
PBO 2017, Teknik Informatika UTM
Komentar
Posting Komentar