Inheritance dan Polimorfisme dalam JAVA

Pada dasarnya kita sebagai manusia sudah terbiasa untuk melihat objek yang berada di sekitar kita tersusun secara hierarki berdasarkan class-nya masing-masing. Dari sini kemudian timbul suatu konsep tentang pewarisan yang merupakan suatu proses dimana suatu class diturunkan dari class lainnya sehingga ia mendapatkkan ciri atau sifat dari class tersebut.
Dari hirarki di atas dapat dilihat bahwa, semakin ke bawah, class akan semakin bersifat spesifik. Misalnya, sebuah Class mamalia memiliki seluruh sifat yang dimiliki oleh binatang, demikian halnya juga anjing, kucing dan monyet memiliki seluruh sifat yang diturunkan dari class mamalia. Dengan konsep ini, karakteristik yang dimiliki oleh class binatang cukup didefinisikan dalam class binatang saja. Class mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki oleh class binatang, karena sebagai class turunannya, ia akan mendapatkan karakteristik dari class binatang secara otomatis. Demikian juga dengan class anjing, kucing dan monyet, hanya perlu mendefinisikan karakteristik yang spesifik dimiliki oleh class-nya masing-masing. Dengan memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu mendefinisikan karakteristik yang lebih umum akan didapatkan dari class darimana ia diturunkan.
Penurunan sifat tersebut dalam Bahasa Pemrograman Java disebut dengan Inheritance yaitu satu dalam Pilar Dasar OOP (Object Oriented Programing), yang dalam implementasinya merupakan sebuah hubungan “adalah bagian dari” atau “is a relationship” object yang diinherit (diturunkan).
Latar belakang diperlukannya suatu inheritance dalam pemrograman java adalah untuk menghindari duplikasi object baik itu field, variable maupun methode yang sebenarnya merupakan object yang bisa diturunkan dari hanya sebuah class. Jadi inheritance bukan sebuah Class yang di inherit oleh sebuah Literial, tapi lebih menunjukkan ke hubungan antar object itu sendiri.
Sedangkan suatu kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda agar tidak terjadi duplikasi object kita kenal sebagai polymorphism.
Antara penurununan sifat (inheritance) maupun polymorphism merupakan konsep yang memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah tersebut

OK biar gak banyak teori, buatlah base class Orang berikut ini:

package test.polimorfisme;

/**
 *
 * @author e12
 */
public class Orang {
    protected String name;
    protected String address;

    /** konstruktor tanpa parameter **/
    public Orang() {
        System.out.println("konstruktor dalam kelas Orang");
        name = "";
        address = "";
    }

    /** konstruktor dengan parameter nama, address **/
    public Orang(String name, String address) {
        this.name = name;
        this.address = address;
    }

    /** method accessor **/
    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getName() {
        System.out.println("Nama orang : " + name);
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Kemudian kita buat kelas turunan Siswa sebagai berikut:

package test.polimorfisme;

/**
 *
 * @author e12
 */
public class Siswa extends Orang {

    Siswa(String name, String address) {
        super(name, address);
    }
    @Override
    public String getName() {
        System.out.println("Nama Siswa : " + name);
        return name;
    }
}

Selanjutnya kelas Karyawan yang merupakan turunan dari Class Orang:

package test.polimorfisme;

/**
 *
 * @author e12
 */
public class Karyawan extends Orang {

    Karyawan(String name, String address) {
        super(name, address);
    }
    @Override
    public String getName(){
        System.out.println("Nama Kayawan : " + name);
        return name;
    }
}

Terakhir kita test Class-class yang telah kita buat:

package test.polimorfisme;

/**
 *
 * @author e12
 */
public class TestApp {
    public static void main(String[] args) {
        Orang ref;

        Siswa objSiswa = new Siswa("chester", "yellowen");
        Karyawan objKaryawan = new Karyawan("Tokihiro", "Osaka");

        /** orang merujuk kepada objek siswa **/
        ref = objSiswa;
        ref.getName();        

        /** orang merujuk kepada objek karyawan **/
        ref = objKaryawan;
        ref.getName();
    }
}

source :
http://affandys.blogspot.com/2007/10/menghindari-duplikasi-object-dengan.html
http://jeni.jardiknas.org

6 Komentar »

  1. x177a17 Said:

    wah ada yang pake c++ gak mas

    • e12x Said:

      😕 wah aku lagi males ma cpp ntr kalo ada mud 😀

  2. daming Said:

    mas kalo bisa sampe slsai pembuatan aplikasi penjelasannya. mksh sblm’y 🙂

  3. seven Said:

    wah dah pusing q liat gitu an hehehe dah lama ga liat program n berpikir logika hahah

    • e12x Said:

      gk pa2 sekarang udah jago basaha inggris. eh jangan2 bahasa java juga udah lupa ya :))

  4. Seven Said:

    wah dah pusing q liat gitu an hehehe dah lama ga liat program n berpikir logika


{ RSS feed for comments on this post} · { TrackBack URI }

Tinggalkan komentar