Inheritance (Inheritansi/Pewarisan) dalam Pemrograman Java

            Inheritansi adalah proses pewarisan data/variable dan method dari suatu kelas (kelas super) kepada kelas yang lain (sub kelas). Kelas super juga disebut kelas induk(base class atau parent class), sedangkan sub kelas juga disebut kelas anak (derived class, extended class, atau child class). Jika kelas super mendapatkan warisan dari kelas lain, maka sub kelas juga akan menerima warisan tersebut. Sebagai contoh kelas A mendapatkan warisan dari kelas B, sedangkan kelas C adalah sub kelas dari kelas A, maka sub kelas C mendapatkan warisan dari kelas B pula.

            Beriku adalah beberapa keuntungan inheritansi :
·         Sifat reusable yaitu sifat yang memungkinkan menggunakan kembali data dan method kelas induk pada sub kelas. Ini memungkinkan dalam penggunaan data dan variable yang sama pada kelas induk dan kelas anak. Dan tidak perlu menulis deklarasi variable dan method kembali untuk menggunakannya pada sub kelas.
·         Kemudahan mengelola kelas yang mempunyai variable dan method yang sama. Apabila terdapat perubahan pada variable dan method tidak perlu mengubah satu per satu pada setiap kelas, namun cukup mengubah variable dan method yang berada pada kelas induk.
·         Tanpa inheritansi akan selalu menuliskan deklarasi variable dan method, padahal kelas-kelas tersebut membutuhkan jenis variable dan method yang sama.

Implementasi Inheritansi
            Untuk menerapkan inheritansi harus membuat kelas super (superclass) terlebih dahulu. Kemudian membuat sebuah sub kelas dengan memanggil kelas super dengan keyword extends. Dalam pewarisan sub kelas menerima warisan semua anggota (data, method, dan nested class) dari kelas super. Konstruktor bukan merupakan anggota kelas, sehingga konstruktor tidak bisa diwarisi sub kelas, akan tetapi konstruktor dari kelas super dapat diakses dari sub kelas.

            Keyword Extends
            Dalam mengaplikasikan inheritansi/pewarisan pemrograman Java menyediakan keyword extends. Keyword extends menyatakan bahwa suatu kelas (sub kelas) merupakan perluasan dari kelas lain (kelas super).

            Keyword Super
            Keyword super digunakan oleh sub kelas untuk mengakses anggota yang dimiliki kelas super seperti konstruktor, variable, dan method. Dalam penulisan yang mengandung keyword super harus diletakkan pada baris pertama pada konstruktor sub kelas.

Mengakses Konstruktor Kelas Super
            Untuk memanggil default konstruktor yang dimiliki oleh kelas super, Java tidak mengizinkan pemanggilan konstruktor secara langsung, namun harus menggunakan keyword super(). Adapun bentuk umum dari keyword super adalah :

            super()
            super(parameter)

Mengakses Variabel dan Method Kelas Super
            Keyword super juga digunakan untuk mengakses variable dan method kelas super. Adapun bentuk keyword super untuk mengakses method yang berada pada kelas super adalah :

            super.namaMethod(parameter)

Sedangkan untuk mengakses variable adalah :

            super.namaVariabel

Langkah-langkah melakukan pemrograman inheritansi :

1.      Program kelas super zakat.java

public class zakat {
    public int nishab1=40;
    public int nishab2=5;
    public String satuan=”Ekor”;
    public zakat(){
        System.out.println(“Zakat Anda”);
        System.out.println(“===========”);
    }
    public int jumlahZakat(int jumlahKambing, int jenisHewan){
        int jumlah=((jumlahKambing>=nishab1)&&(jenisHewan==1))?1:0;
        return jumlah;
    }
}

2.      Program sub kelas zakatHewan.java

public class zakatHewan extends zakat {
    public zakatHewan(int jnsHewan){
        super.jumlahZakat(50, jnsHewan);
        System.out.print(“Jenis Hewan Zakat : “);
        System.out.println((jnsHewan==1)?”Kambing”:”Onta”);
    }
    public static void main(String[] args) {
        zakatHewan kambing=new zakatHewan(1);
        System.out.println(“Jumlah Zakat : “+kambing.jumlahZakat(50, 1)+””+kambing.satuan);
    }
}

Pada program di atas, hanya perlu menjelaskan sub kelas yang mempunyai method main saja yaitu zakatHewan.java. Secara otomatis kelas super akan ikut dikompilasi menjadi file bytecode. Contoh program di atas akan menghasilkan output sebagai berikut :

Inheritance (Inheritansi/Pewarisan) dalam Pemrograman Java 1

Leave a Reply