Sabtu, 21 April 2012



INHERITANCE & POLIMORFISME PADA JAVA

Inheritance atau pewarisan adalah pendeklarasian yang dilakukan dengan cara menurunkan atribut beserta method (dengan catatan selain private) dari superclass ke subclass. Pengertian dari superclass adalah class yang mewariskan atribut dan methodnya ke subclass sedangkan subclass merupakan class yang diwarisi sifat-sifat dari superclass. Dan nantinya class yang baru yang telah diwarisi sifat dari superclass, akan mempunyai sifat-sifat yang sama dengan superclass.
Misal sama seperti seekor kucing yang mewarisi pigmen warna yang sama seperti milik induknya dan juga behaviour (sifat-sifat) dari induknya. Namun hal ini juga tidak menutup kemungkinan untuk menemberikan state-state yang lebih spesifik dan juga behaviour yang baru atau bahkan bisa dimodifikasi seperti yang diinginkan. Misalnya kucing tadi kita dapat memberikan data membernya yang lebih spesifik seperti lingkungan tempat kucing tersebut hidup dll.  Nah dalam mendeklarasikan inheritance (pewarisan) dalam compiler java, cukup dengan menuliskan kata extends setelah deklarasi dari nama class, lalu setelah itu ketik lagi kata superclassnya. Ditulis seperti ini :
               class Kucing extends Mamalia {
               
                              // spesifikasi atau modifikasi
                              // struktur atau sifat-sifat dari kelas Mamalia
               }
 
            Ada juga beberapa jenis dari inheritance yaitu single inheritance, multiple inheritance serta multilevel inheritance. Single inheritance merupakan suatu class yang hanya mempunyai satu superclass, sedangkan multiple inheritance adalah class yang mempunyai lebih dari satu superclassnya pada variabel dan method yang telah diwariskan merupakan hasil variasi dari superclass-nya. Dan multilevel inheritance adalah subclass yang menjadi superclass bagi class yang lain.
Dalam pewarisan terdapat method overriding dan juga overloading. Pengertian dari method overriding merupakan pendefinisian kembali method yang sama. Contohnya kasusnya misalnya penulisan nama method yang sama atau pada parameter (signature) yang ada pada subclass. Lalu overloading merupakan pendefinisian pada method yang sama, tetapi parameter yang beda dalam definisi class yang sama (masih dalam satu class). Contohnya inheritance dalam java :
public class Persegi{
    double Sisi;
    Persegi(double Sisi) {
        this.Sisi = Sisi;
    }
    double hitungLuas() {
        return (Sisi * Sisi);
    }
    double getSisi() {
        return Sisi;
    }
}
class Kubus extends Persegi{
    Kubus(double Sisi){
        super(Sisi);
    }
    @Override
    double hitungLuas() {
        return (Sisi * Sisi * Sisi);
    }
}
public class Hitung
{
    public static void main (String[]args){
        Kubus k1 = new Kubus (5);
        Persegi p1 = new Persegi(5);
        System.out.println("Sisi = " +k1.Sisi);
        System.out.println("Luas = " +p1.hitungLuas());
        System.out.println("Volume = " +k1.hitungLuas());
    }
}
B. POLIMORFISME
Polimorfisme merupakan sebuah pemikiran yang intinya suatu hal yang sama dapat menghasilkan bentuk dan perilaku yang berbeda-beda. Polimorfisme juga berarti terdapat operasi yang sama pada class yang berbeda. Misalnya saat kita punya class “PersegiPanjang” dan “Persegi”, dimana class tersebut adalah sebuah subclass dari class “Balok” dan “Kubus”. Maka saat kita ingin memperkecil ukuran dari persegi panjang kita harus memperkecil panjang dan juga lebarnya, begitu pula pada persegi kita harus memperkecil sisinya. Nah itu lah yang dimaksud dengan konsep polimorfisme, saat kita sama-sama ingin mengecilkan ukuran masing-masing bangun tersebut namun dengan cara yang berbeda-beda.
Dalam pembuatan polimorfisme terdapat beberapa aspek yang harus diperhatikan :
1.      Method access attribute yang ada pada subclass harus lebih spesifik dibandingan dengan yang ada di superclass
2.      Method-method yang akan dipanggil, cara pemanggilannya harus melalui variable-variabel yang ada pada superclass.
3.      Method-method yang akan dipanggil harus menjadi method juga di superclass
4.      Parameter yang ada di method harus sama antara yang ada di subclass dan yang ada di superclass
Berikut contoh-nya dalam java :
public class Tumbuhan
{
public void info (){
       System.out.println("info () pada Tumbuhan : berklorofil, berkembang, bernafas");
    }
public class Dikotil extends Tumbuhan
{
   public void info(){
       System.out.println("info() pada Dikotil : biji berkeping dua");
    }
}
public class Rambutan extends Dikotil
{
    public void info (){
        System.out.println("info() pada Rambutan : daunnya berklorofil, buahnya berwarna merah");
    }
}
public class Info
{
    public static void main (String[]args){
        Dikotil dikotil;
        Rambutan rambutanKlengkeng;
        Tumbuhan tumbuhan;
       
        dikotil = new Dikotil();
        rambutanKlengkeng = new Rambutan();
       
        tumbuhan = dikotil;
        tumbuhan.info();
       
        tumbuhan = rambutanKlengkeng;
        tumbuhan.info();
    }
}

2 komentar: