Minggu, 18 Agustus 2013

Java Core 2. Polimorfisme



Polimorfisme adalah suatu konsep yang menyatakan sesuatu yang sama dapat memiliki bentuk dan perilaku yang berbeda. Dalam paradigma pemrograman berorientasi objek, Polimorfisme dapat kita gunakan untuk menimpa (override) suatu method yang berasal dari class induk dimana objek itu diturunkan sehingga objek itu memiliki perilaku yang berbeda.

Seperti pada gambar diatas, ada tiga hewan yaitu anjing, bebek dan kucing. Tiga hewan itu (object) berasal dari satu induk (parent class) yaitu hewan. Hewan memiliki method Bersuara, dan karena masing-masing objek tersebut turunan dari class hewan, maka tiap objek mempunyai method bersuara tapi method untuk tiap-tiap objek bisa berbeda contohnya objek Bebek bersuara seperti kwekwekwekkn dan objek anjing bersuara seperti gukguguk.

Polimorfisme dapat berupa overloading atau overriding :
  1. Overloading yaitu beberapa metode dapat memiliki nama yang sama dengan isi dan parameter yang berbeda di dalam sebuah kelas.
  2. Overriding yaitu beberapa metode pada kelas orang tua dapat ditulis ulang pada kode kelas anak dalam pewarisan (inheritance) dengan memiliki nama yang sama dan memiliki isi ataupun parameter yang sama atau berbeda. 

untuk mempermudah pemahaman tentang polimorfisme, saya jelaskan melalui kode Java.

/**
 * @author teten
 * class induk Hewan
 */

class Hewan {
  
    public void bersuara(){
        System.out.println("Hewan bersuara ...");
    }
    
}


Kelas-kelas turunan dari kelas hewan
/**
 *
 * @author teten
 * class Anjing turunan Hewan
 */
public class Anjing extends Hewan{
    
    private String suaraAnjing="Suara Anjing : Gukgukguk";
    
    @Override
    public void bersuara(){
        System.out.println(suaraAnjing);
    }
    
}


/**
 *
 * @author teten
 * class Bebek turunan Hewan
 */
public class Bebek extends Hewan{
    
    private String suaraBebek="Suara Bebek : Kwekwekwekwek";
    
    @Override
    public void bersuara(){
        System.out.println(suaraBebek);
    }
    
}


/**
 *
 * @author teten
 * class Kucing turunan Hewan
 */
public class Kucing extends Hewan{
    
    private String suaraKucing="Suara Kucing : miawmiawmiaw";
    
    @Override
    public void bersuara(){
        System.out.println(suaraKucing);
    }
    
}
Dan berikut kelas main nya :
/**
 *
 * @author teten
 * kelas main eksekusi
 */
public class Main {
    public static void main(String[] args) {
        /* membuat objek anjing*/
        Anjing anjing=new Anjing();
        anjing.bersuara();
        System.out.println("");
        
        /* membuat objek bebek*/
        Bebek bebek=new Bebek();
        bebek.bersuara();
        System.out.println("");
        
        /* membuat objek kucing*/
        Kucing kucing=new Kucing();
        kucing.bersuara();
        System.out.println("");
    }
}
Jika semuanya benar, maka jika dieksekusi atau dijalankan akan mengeluarkan output seperti berikut :
 

0 komentar:

Posting Komentar