Dhafiq Sagara adalah orang bodoh yang tidak bisa apa-apa, tapi dia selalu berusaha untuk terus menjadi yang lebih baik. Rasa keingin-tahuannya sangat tinggi, selalu berusaha dan terus berusaha, trial dan error adalah prinsip belajarnya.

9 Okt 2010

Inheritance (Pewarisan) - Java Basic (Bagian 1)

Java inheritance (warisan) adalah suatu hubungan antara superclass dan subclass-nya (atau bisa dikatakan hubungan antara induk class dan anak class-nya). Inheritance class (class warisan) didalam mekanisme java digunakan untuk membangun kelas baru dari kelas yang sudah ada. Jadi inti dari inheritance (pewarisan) pada java ini yaitu sebuah kelas mewarisi attribute dan method dari kelas lain.

Sebagai contoh, kelas makhluk_hidup dapat menurunkan sifat (attribute) dan kemampuannya (method) kepada kelas hewan, manusia dan tumbuhan. Sehingga kelas hewan sebagai superclass yang mewariskan sifat (attribute) dan kemampuannya (method) kepada manusia, hewan dan tumbuhan sebagai subclass-nya.

Bagaimana konsep OOP inheritance (pewarisan) dalam penerapannya pada syntax Java??

//*************** makhluk_hidup.java ***************
public class makhluk_hidup {
    private String nama;
    private String warna;
    private String gender;
    private String ciri;

    public String getCiri() {
        return ciri;
    }

    public void setCiri(String ciri) {
        this.ciri = ciri;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getNama() {
        return nama;
    }

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

    public String getWarna() {
        return warna;
    }

    public void setWarna(String warna) {
        this.warna = warna;
    }

    public void nafas(){
        System.out.println("bernafas");
    }

    public void jalan(){
        System.out.println("jalan");
    }
}
//****************************************

//*************** manusia.java ***************
 public class manusia extends makhluk_hidup{
    private String akal;

    public String getAkal() {
        return akal;
    }

    public void setAkal(String akal) {
        this.akal = akal;
    }

    @Override
    public String getCiri() {
        return super.getCiri();
    }

    @Override
    public String getGender() {
        return super.getGender();
    }

    @Override
    public String getNama() {
        return super.getNama();
    }

    @Override
    public String getWarna() {
        return super.getWarna();
    }

    @Override
    public void jalan() {
        super.jalan();
    }

    @Override
    public void nafas() {
        super.nafas();
    }

    @Override
    public void setCiri(String ciri) {
        super.setCiri(ciri);
    }

    @Override
    public void setGender(String gender) {
        super.setGender(gender);
    }

    @Override
    public void setNama(String nama) {
        super.setNama(nama);
    }

    @Override
    public void setWarna(String warna) {
        super.setWarna(warna);
    }
}
//****************************************

//*************** hewan.java ***************
 public class hewan extends makhluk_hidup{
    private String kanibal;
    private String beranak;

    public String getBeranak() {
        return beranak;
    }

    public void setBeranak(String beranak) {
        this.beranak = beranak;
    }

    public String getKanibal() {
        return kanibal;
    }

    public void setKanibal(String kanibal) {
        this.kanibal = kanibal;
    }

    @Override
    public String getCiri() {
        return super.getCiri();
    }

    @Override
    public String getGender() {
        return super.getGender();
    }

    @Override
    public String getNama() {
        return super.getNama();
    }

    @Override
    public String getWarna() {
        return super.getWarna();
    }

    @Override
    public void jalan() {
        super.jalan();
    }

    @Override
    public void nafas() {
        super.nafas();
    }

    @Override
    public void setCiri(String ciri) {
        super.setCiri(ciri);
    }

    @Override
    public void setGender(String gender) {
        super.setGender(gender);
    }

    @Override
    public void setNama(String nama) {
        super.setNama(nama);
    }

    @Override
    public void setWarna(String warna) {
        super.setWarna(warna);
    }
}
//****************************************

//*************** Main.java ***************
public class Main {
    public static void main(String[] args) {
        manusia man = new manusia();
        hewan animal = new hewan();

        man.setNama("Mudafiq");
        man.setGender("pria");
        man.setWarna("sawo matang");
        man.setCiri("hidung mancung");

        animal.setKanibal("tidak kanibal");
        animal.setBeranak("beranak dengan cara bertelur");
        animal.setCiri("berkaki 2");
        animal.setGender("laki-laki");

        System.out.println(man.getGender()+" itu bernama "+man.getNama()+", warna kulitnya "+man.getWarna()+" dan memiliki "+man.getCiri());
        System.out.println();
        System.out.println("Saya adalah hewan yang "+animal.getBeranak()+" "+animal.getCiri()+" dan "+animal.getKanibal()+". Siapakah saya?");
    }
}
//****************************************

Dari source code di atas, hasil yang ditampilkan yaitu:
pria itu bernama Mudafiq, warna kulitnya sawo matang dan memiliki hidung mancung

Saya adalah hewan yang beranak dengan cara bertelur berkaki 2 dan tidak kanibal. Siapakah saya?



Jadi kelas makhluk_hidup sebagai superclass-nya yang kemudian attributenya diturunkan ke subclass-nya (manusia dan hewan). Kondisi pada saat subclass-nya memanggil method dari superclass-nya disebut override method. Jadi subclass tidak perlu membuat attribute dan method sendiri jika attribute dan methodnya sama dengan superclass, maka tinggal meng-override method dari superclass. Selain itu, syarat pewarisan yaitu subclass harus meng-extends class dari superclass-nya.

Tidak ada komentar:

Posting Komentar