Abstrak dan Interface Pada Java
A. Pengertian Abstrak
Abstract Class adalah class yang
mempunyai setidaknya satu abstract method. Abstract method adalah method yang tidak
memiliki body (hanya deklarasi method). Abstract class tidak bisa dibuat obyeknya. Obyek hanya bisa dibuat dari non-abstract
class (concrete class). Konsekuensinya, suatu abstract class
haruslah diturunkan dimana pada subclass
tersebut berisi implementasi dari abstract
method yang ada di super class-nya.
Bila subclass yang diturunkan dari
abstract class tidak
mengimplementasikan isi semua
method abstrak parent class, maka
subclass tersebut harus tetap
dideklarasikan abstract. Dan deklarasi method abstract pada
subclass tersebut boleh tidak dituliskan
kembali.
Kegunaan Class Abstrak:
- Class Abstract berisi beberapa method dan beberapa method abstract. Class Abstract berisi sebagian implementasi, dan subclass yang melengkapi implementasinya. Dengan kata lain Class Abstract memiliki beberapa kesamaan (Bagian yang diimplementasikan oleh subclass) dan memiliki perbedaan (method yang dimiliki sendiri oleh class abstract)
- Deklarasikan method abstract, jika ada satu atau lebih subclass yang diharapkan mempunyai fungsionalitas yang sama tapi implementasi berbeda.
- Gunakan class abstract untuk mendefinisikan behavior secara umum sebagai superclass, sedangkan subclass menyediakan implementasi detail.
- Jika class abstract semua method merupakan method abstract, sebaiknya class abstract tersebut diganti menjadi Interface.
Contoh Program:
package Teori;
public abstract class Parent{
public abstract void mAbstract();
}
class Child extends Parent{
public void mAbstract(){}
}
public abstract class Parent{
public abstract void mAbstract();
}
class Child extends Parent{
public void mAbstract(){}
}
Hasil compile program diatas:
Hasilnya error dikarenakan tidak ada objek dari class parent.
Contoh Program 2:
package Teori;
public abstract class Parent{
public abstract void mAbstract();
}
class Child extends Parent{
public void mAbstract(){}
}
public abstract class Parent{
public abstract void mAbstract();
}
class Child extends Parent{
public void mAbstract(){}
}
Hasil compile Program diatas:
Hasilnya error dikarenakan tidak ada objek dari class child.
B. Pengertian Interface
Interface berbeda dengan class. Interface berisi method kosong dan konstanta. Method dalam interface tidak mempunyai statement. Sehingga deklarasi method dalam interface sama dengan
deklarasi abstract method pada abstract class.
Method yang dideklarasikan didalam
interface secara otomatis adalah
public dan abstract.
• Variable dalam interface secara
otomatis adalah public, static, dan
final.
Cara pengimplementasian dari Interface:
- Bila sebuah class mengimplementasikan suatu interface, maka semuakonstanta dan method interface akan dimiliki oleh class ini.
- Method pada interface harus diimplementasikan pada class yang mengimplementasikan interface ini.
- Bila class yang mengimplementasikan interface tidak mengimplemetasikan semua method dalam interface, maka class tersebut harus dideklarasikan abstract.
Deklarasi dari Interface:
<modifier> class <name> [extend <super class>]
[implements <interface> [,<interface>]*] {
<declaration>*
}
Semoga Bermanfaat, terimakasih.
Komentar
Posting Komentar