Thursday, February 27, 2014

Inheritance di Java

Pendahuluan

Inheritance (Pewarisan) adalah hubungan antara super class (kelas induk) dengan sub classnya (kelas anak). Dimana kelas super class dapat mewariskan property dan method nya kepada subclass nya. Hubungan ini sering disebut IS-A relationship.

Inheritance di Java menggunakan extends dan implements keyword. extends digunakan untuk mewariskan method dan property dari kelas induknya, sedangkan implements digunakan untuk mewariskan interface.

Bahasa Java hanya mengenal pewarisan tunggal, artinya sub class hanya mewarisi satu kelas indukan. Tidak seperti C++ yang menganut konsep pewarisan Jamak, dimana subclass dapat mewarisi banyak kelas indukan.

Terus bagaimana caranya kalau kita ingin subclass di Java bisa mewarisi seperti C++. Tenang saja, di Java ada keyword implements, dimana bisa mewarisi banyak interface.

IS-A Relationship

Gambar di bawah ini adalah konsep contoh Inheritance pada Java
Dari gambar di atas dapat disimpulkan:
  • Binatang adalah superclass dari Mamalia dan Serangga.
  • Mamalia adalah superclass dari Monyet, Anjing, dan Sapi.
  • Serangga adalah superclass dari Lebah, Kupu-Kupu dan Nyamuk.
Berdasarkan konsep IS-A, maka:
  • Mamalia dan Serangga merupakan binatang.
  • Monyet, Anjing, dan Sapi merupakan binatang.
  • Lebah, Kupu-Kupu dan Nyamuk.
Contoh Inheritance dalam program:

public class Binatang{
    public String nama;

    public String getNama(){
       return nama;
    }

    public void setNama(String pNama){
       this.nama = pNama;
    }
  
    public Binatang(String pNama){
       this.nama = pNama;
    }   
}

public class Mamalia extends Binatang{
    public Binatang(String nama){
       super(nama);
    }
    public void sifat(){
       System.out.println("Binatang mamalia menyusui");
    }

    public static void main(String[] args){
       Mamalia anjing = new Mamalia("Buldog");
       System.out.println("Anjing adalah "+anjing.sifat()); 
    }
}

Catatan:
  • Program diatas terdapat keyword super, yaitu kata kunci yang digunakan untuk mengakses konstruktor, variable, maupun method dari kelas parent. Keyword super beguna untuk menghindari redudansi program.

instanceof Keyword

instanceof keyword digunakan untuk mengecek keterkaitan antara object yang satu dengan yang lainnya. Setiap object (instance) dari sub class juga termasuk instance dari superclass nya. Tidak belaku buat kebalikannya.

Contoh:

public class Manusia{
    // property & method
}

public class Kakek extends Manusia{
     // property & method
}

public class Ayah extends Kakek{
     // property & method
}

public class Anak extends Ayah{
    // property & method
}

public class TestInstanceOf{
    public static void main(String[] args){
        Manusia manusia = new Manusia();
        Ayah ayah = new Ayah();
        Anak anak = new Anak();
        System.out.println(anak instanceof manusia); //true
        System.out.println(anak instanceof ayah); //true
        System.out.println(ayah instanceof manusia); //true
        System.out.println(ayah instanceof anak); //false
    }
}

Penutup

Sekian tutorial kali ini, semoga bermanfaat.

0 comments:

Post a Comment