Sabtu, 10 November 2012

Inheritance pada java

Inheritance adalah pewarisan. Pewarisan dalam pemrograman berorientasi objek, Inheritance memungkinkan suatu Class bisa mewariskan atribut dan Method kepada Class yang lainnya atau subClass, sehingga membentuk Class hirarki. Inheritance sangat mirip dengan hubungan orang tua dengan anak. Manakala suatu kelas menerima warisan dari semua anggota data dan fungsi menerima warisan, walaupun tidak semua di antara mereka dapat diakses oleh anggota fungsi dari kelas.

Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.

Semua class dalam Java, termasuk class yang membangun Java API, merupakan subclass dari superclass Object.
Contoh dari hierarki class :



  • Superclass adalah class induk atau class orang tua, class yang letaknya di atas class tertentu di dalam hierarki.
  • Subclass adalah class anak. Semua property, methode, ataupun konstruktor yang dimiliki oleh superclass jika diwariskan, maka subclass memiliki semua yang dimiliki oleh superclass.


Contoh Program Inheritance Dalam java

1. kelas BangunDatar.java

class BangunDatar {
    public void HitungLuas(){
        System.out.println("Belum terdefinisi/belum jelas luas apa yang dihitung");
    }
    public void HitungKeliling(){
        System.out.println("Belum terdefinisi/belum jelas keliling apa yang dihitung");
    }

}

2. Subkelas SegiTiga.java dari kelas BangunDatar.java

class SegiTiga extends BangunDatar {
    //variabel instan
    protected double panjang=6;
    protected double lebar=5;
    private double miring=7;
    @Override
    public void HitungLuas(){
        double luas;  //deklarasi variabel lokal
        luas=this.panjang*this.lebar/2;
        //mencetak luas segitiga
        System.out.println("Panjang   : "+this.panjang+ " cm");
        System.out.println("Lebar     : "+this.lebar+ " cm");
        System.out.println("Luas Segitiga adalah "+luas+" cm kuadrat");
    }
    @Override
    public void HitungKeliling(){
        double keliling; //deklarasi variabel lokal
        keliling=this.panjang+this.lebar+this.miring;
        //mencetak keliling segitiga
        System.out.println("Panjang   : "+this.panjang+ " cm");
        System.out.println("Lebar     : "+this.lebar+ " cm");
        System.out.println("Miring    : "+this.miring+ " cm");
        System.out.println("Keliling Segitiga adalah "+keliling+ " cm");
    }
}


3. Subkelas PersegiPanjang.java dari kelas SegiTiga.java untuk menentukan akses protected

class PersegiPanjang extends SegiTiga {
    @Override
    public void HitungLuas(){
        double luas;  //deklarasi variabel lokal
        luas=this.panjang*this.lebar;
        //mencetak luas PersegiPanang
        System.out.println("Panjang   : "+this.panjang+ " cm");
        System.out.println("Lebar     : "+this.lebar+ " cm");
        System.out.println("Luas Persegi panjang adalah "+luas+" cm kuadrat");
    }
    @Override
    public void HitungKeliling(){
        double keliling; //deklarasi variabel lokal
        //mencetak keliling PersegiPanjang
        keliling=(2*this.panjang)+(2*this.lebar);
        System.out.println("Panjang   : "+this.panjang+ " cm");
        System.out.println("Lebar     : "+this.lebar+ " cm");
        System.out.println("Keliling Persegi Panjang adalah "+keliling+" cm");

    }

}

4. Program Utama /main HasilBangunDatar.java

class HasilBangunDatar {
    public static void main(String[] args) {
        //membuat objek dari kelas BangunDatar
        BangunDatar bd=new BangunDatar();
        //membuat objek bd melakukan sesuatu
        bd.HitungLuas();
        bd.HitungKeliling();
        System.out.println("");
        //membuat objek dari kelas SegiTiga
        SegiTiga st=new SegiTiga();
        //membuat objek st melakukan sesuatu
        st.HitungLuas();
        System.out.println("");
        st.HitungKeliling();
        System.out.println("");
        //membuat objek dari kelas Persegi Panjang
        PersegiPanjang pp=new PersegiPanjang();
        //membuat objek pp melakukan sesuatu
        pp.HitungLuas();
        System.out.println("");
        pp.HitungKeliling();
    }
}

5. Hasil Akhir Program

Belum terdefinisi/belum jelas luas apa yang dihitung
Belum terdefinisi/belum jelas keliling apa yang dihitung

Panjang   : 6.0 cm
Lebar     : 5.0 cm
Luas Segitiga adalah 15.0 cm kuadrat

Panjang   : 6.0 cm
Lebar     : 5.0 cm
Miring    : 7.0 cm
Keliling Segitiga adalah 18.0 cm

Panjang   : 6.0 cm
Lebar     : 5.0 cm
Luas Persegi panjang adalah 30.0 cm kuadrat

Panjang   : 6.0 cm
Lebar     : 5.0 cm
Keliling Persegi Panjang adalah 22.0 cm

Sumber :

2 komentar: