Pages

Jumat, 09 Desember 2011

Abstract Class (PBO)

Misalnya  kita  ingin  membuat  superclass  yang  mempunyai  method  tertentu  yang  berisi
implementasi, dan juga beberapa method yang akan di-overridden oleh subclasses nya.

Sebagai contoh, kita akan membuat superclass bernama LivingThing. class ini mempunyai
method tertentu seperti breath, eat, sleep, dan walk. Akan tetapi, ada beberapa method di
dalam superclass yang sifatnya tidak dapat digeneralisasi. Kita ambil contoh, method walk.
Tidak  semua  kehidupan  berjalan(walk)  dalam  cara  yang  sama.  Ambil  manusia  sebagai
misal,  kita  manusia  berjalan  dengan  dua  kaki,  dimana  kehidupan  lainnya  seperti  anjing
berjalan  dengan  empat  kaki.  Akan  tetapi,  beberapa  ciri  umum  dalam  kehidupan  sudah
biasa, itulah kenapa kita inginkan membuat superclass umum dalam hal ini.
Kita  dapat  membuat  superclass yang  mempunyai  beberapa method  dengan  implementasi
sedangkan yang lain tidak. Class jenis ini yang disebut dengan class abstract.

Sebuah class abstract  adalah  class  yang  tidak  dapat di-instantiate.  Seringkali  muncul  di
atas hirarki class pemrograman berbasis object, dan mendefinisikan keseluruhan aksi yang
mungkin pada object dari seluruh subclasses dalam class.

Method  ini  dalam  class  abstract  yang  tidak  mempunyai  implementasi  dinamakan  method
abstract. Untuk membuat method abstract, tinggal menulis deklarasi method tanpa tubuh
class dan digunakan menggunakan kata kunci abstract. Contohnya :    
  public abstract void someMethod();
 Sekarang mari membuat contoh class abstract.
    
    public abstract class LivingThing
{
  public void breath(){
    System.out.println("Living Thing breathing...");  
  }  

public void eat(){
    System.out.println("Living Thing eating...");  
  }  

/**
   * abstract method walk
   * Kita ingin method ini di-overridden oleh subclasses     
   */
  public abstract void walk();
  }

Ketika  class  meng-extend  class  abstract  LivingThing,  dibutuhkan  untuk  override  method
abstract  walk(),  atau  lainnya,  juga  subclass  akan  menjadi  class  abstract,  oleh  karena  itu
tidak dapat di-instantiate. Contohnya,

  public class Human extends LivingThing
{
  public void walk(){
    System.out.println("Human walks...");  
  }  
  }

Jika  class  Human  tidak  dapat  overridde  method  walk,  kita  akan  menemui  pesan  error
berikut ini,

Human.java:1: Human is not abstract and does not override
abstract method walk() in LivingThing
public class Human extends LivingThing
       ^
    1 error

0 komentar:

Posting Komentar

 

(c)2009 PD-Child. Based in Wordpress by wpthemesfree Created by Templates for Blogger