tik.tok

Sabtu, 19 Mei 2012

PBO (ABSTRACTION)


2.    Pengertian Abstraction

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

Tidak ada komentar:

Posting Komentar