Jumat, 20 April 2012

Inheritance dan Polimorfisme dalam Java


  • Inheritance

Inheritance yaitu penurunan sifat dari induk class kepada subclass atau anak class.
Contohnya dapat diambil dari contoh alami yaitu class zebra. Dalam dunia biologi, class zebra adalah hewan bertulang belakang atau vertebrata yang merupakan mamalia pemakan rumput/tumbuh-tumbuhan atau bertipe herbivora.
Didalam Java, penurunan sifat tersebut disebut Inheritance. Penurunan sifat alami tersebut sama dengan penurunan yang terjadi dalam Java sehingga bisa dijadikan contoh inheritance dan bisa dituangkan kedalam Java. Dengan konsep pewarisan, seorang programmer dapat menggunakan kode yang telah ditulisnya pada kelas super berulang kali pada kelas-kelas turunannya tanpa harus menulis ulang semua kode-kode itu.
Contoh program inheritance :
(pada program ini perhatikan kata kunci extends)

Listing :

class vertebrata{
    String status_vertebrata = "Hewan bertulang belakang";
    public void bertulang_belakang(String hewan, Boolean status){
        if (status==true){
            System.out.println(hewan+""+status_vertebrata);
        }
 else{
            status = false;
 }
    }
}
class mamalia extends vertebrata{
    String makanan;
    public void menyusui (String hewan){
        System.out.println(hewan + "adalah mamalia karena dia menyusui ");
    }
    public void herbivora (String hewan, Boolean status){
        makanan = "Makan Tumbuh-tumbuhan";
        if (status==true){
            System.out.println(hewan + "" + makanan);
        }
 else {
            status = false;
        }
    }
    public void karnivora (String hewan, Boolean status){
        makanan = " Makan Daging ";
        if (status==true){
            System.out.println(hewan + "" + makanan);
        }
 else{
            status = false;
        }
    }
    public void omnivora (String hewan, Boolean status){
        makanan = " Pemakan Segalanya ";
        if (status==true){
            System.out.println(hewan + "" + makanan);
        }
 else{
            status = false;
        }
    }
}
public class inheritance extends mamalia {
                public static void main(String[] args) {
        inheritance zebra = new inheritance();
        zebra.bertulang_belakang("Zebra ", true);
        zebra.menyusui("Zebra ");
        zebra.herbivora("Zebra ", true);

    }
}

Output :
ketiga class diatas tergabung dalam satu file yakni file inheritance.java. Didalam class inheritance terdapat methode public static void main() yang merupakan constructor utama atau main

ketiga class tersebut dapat di pisah ke dalam 3 file dengan masing2 nama file sesuai dengan nama classnya, hanya tinggal meng-import file java vertebrata.java dan mamalia.java kedalam file inheritance.java yang terdapat metode main/utama

  • Polimorfisme
Dalam pemrograman berorientasi object kita mengenal suatu istilah yaitu  Polimorfisme.
Polimorfisme adalah suatu teknik dalam programming yang lebih mengarahkan kita untuk memprogram secara general dari pada secara spesifik.  Polimorfisme juga dapat dikatakan kemampuan sebuah objek untuk memutuskan method mana yang akan diterapkan padanya, tergantung letak objek tersebut pada jenjang pewarisan. 
Contoh program java yang menggunakan polimorfisme :

Listing :
// Orang.java
public class Orang{
public String nama;
public String alamat;

//Constructor...
public Orang() {
}

public Orang (String nama) {
this.nama = nama;
}
public Orang(String nama,String alamat){
        this.nama=nama;
        this.alamat=alamat;
    }
    //accessor method mengembalikan nilai
    public String getName(){
        return nama;
        }
    //mutator methode untuk mengubah nilai dari instance.
   public void setName(String nama){
           this.nama = nama;
       }
}

//Mahasiswa1.java

public class Mahasiswa1 extends Orang{

    String jeniskelamin;

    public Mahasiswa1() {

        //super digunakan untuk memanggil constructor terdekat pada kelas Orang.

        super("Olivia");

    }

    //overidde methode dari kelas Orang..

    public String getName(){

        return nama;

        }

    public void setName(String nama){
        this.nama = nama;

        }
}

// Pekerja.java

public class Pekerja extends Orang{
                public Pekerja() {
                super("Mahasiswa");
     }
 //ovveride dari kelas Person

    public String getName(){
       return nama;

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

        }
 }

// CallOrang.java
public class CallOrang {
  public static void main(String[] args){
//contoh polimorfisme di java

        Orang call;

        Mahasiswa1 m = new Mahasiswa1();

        Pekerja n = new Pekerja();



        //memanggil dari kelas mahasiswa

        call = m;
        String smp = call.getName();

        System.out.println("Saya dari bagian Mahasiswa : " + smp);

        //memanggil dari kelas pekerja

        call = n;

        String sma = call.getName();

        System.out.println("Saya dari bagian Pekerja : " + sma);

       }
       }

Ke-empat class diatas tergabung dalam satu file yaitu Polimorfisme. Didalam class terdapat Polimorfisme. methode public static void main() yang merupakan constructor utama atau main
Ketiga class tersebut saya  pisah ke dalam tiga file, dengan masing-masing nama file, sesuai dengan nama classnya, hanya tinggal meng-import file java yaitu:
Orang.javaMahasiswa1.java, dan Pekerja.java.
Kedalam file CallOrang.java yang terdapat metode main/utama.

Output :
Sumber :


Nama : Olivia Yulianda
NPM : 55410279
Kelas : 2IA13






Tidak ada komentar:

Posting Komentar