Sabtu, 24 Mei 2008

Abstract Class

Class Abstrak tidak berbeda dengan class – class lainnya yaitu memiliki class members (method dan variabel). Sebuah class adalah abstrak jika salah satu methodnya dideklarasikan abstrak. Method abstrak adalah method yang tidak memiliki implementasi. Contoh deklarasi method abstrak:
abstract public void cetak();
Beberapa hal yang perlu diperhatikan adalah sebagai berikut:
  1. Class abstrak tidak dapat dibuatkan instan atau objeknya menggunakan keyword new.
  2. Sebuah class dapat dideklarasikan sebagai class abstrak walaupun tidak memiliki method abstrak.
  3. Variabel dengan tipe class abstrak tetap bisa diciptakan, tetapi harus refer ke subclass dari class abtrak tersebut yang tentunya tidak abstrak.
Perhatikan contoh class abstrak di bawah ini.

abstrak public class Mobil {
public void injakPedalGas();
public void injakRem(){
System.out.println(“Mobil berhenti!”);
}
}
public class Kijang extends Mobil{
public void injakPedalGas(){
System.out.println("Mobil Melaju dengan kecepatan 80 Km/jam...");
}
}
public class BMW extends Mobil {
public void injakPedalGas(){
System.out.println("Mobil Melaju dengan kecepatan 100 Km/jam...");
}
}



Objek class abtrak tidak dapat diciptakan menggunakan keyword new secara langsung. Apabila kita terpaksa ingin menciptakan object class abtrak tanpa membuat subclass kongkritnya, maka kita harus mengimplementasikan method – method abstraknya secara langsung saat deklarasi. Perhatikan contoh di bawah ini.

public class TestMobil {
public static void main(String[] args){
Mobil mobil = new Mobil(){
public void injakPedalGas(){
System.out.println("Mobil berjalan...");
}
};

Kijang kijang = new Kijang();
Escudo escudo = new Escudo();
BMW bmw = new BMW();

mobil.injakPedalGas();

mobil = kijang;
mobil.injakPedalGas();

mobil = escudo;
mobil.injakPedalGas();

mobil = bmw;
mobil.injakPedalGas();
}
}

1 komentar:

Ricky PauL mengatakan...

perbedaan abstrak sama ngak abstrak dari pembuatan instan yah??

Mobil mobil = new Mobil();