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();
}


 Berikut ini contoh kasus penggunaan Interface:

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

Contoh Structure Tree Abstract, Concrete Class & Interface

PBO 2017, Teknik Informatika UTM


Komentar

Postingan populer dari blog ini

The ITIL Service Lifecycle

Computer Organization and Architecture, 9th Edition Review Questions Chapter 2