Apa Itu Inheritance dan Mengapa Penting Dipahami Dalam Belajar Java?
Dalam belajar Java untuk pemula, memahami Inheritance adalah hal yang sangat penting. Inheritance merupakan salah satu dari 4 konsep dari pemrograman Java yang fundamental selain dari Encapsulation, Polymorphism dan Abstraction.Inheritance bersifat krusial karena memiliki efek langsung pada bagaimana anda mendesain class-class.
Konsep ini sebenarnya memiliki tujuan yaitu ketika anda membuat suatu class maka anda hanya perlu menspesifikasikan apa yang menjadi perbedaan antara suatu class dengan class lainnya, kemudian secara otomatis inheritance ini akan memberikan akses otomatis terhadap informasi yang terkandung dari class lainnya.
Keyword untuk inheritance atau pewarisan adalah extends.
Class yang mewariskan disebut dengan superclass dan class yang menerima pewarisan disebut dengan subclass.
Class Object Sebagai Superclass Tertinggi
Pada posisi top markotop level puncak class pada Java ditempati oleh class Object, nama lengkapnya java.lang.Object, yang merupakan superclass dari semua class yang ada pada Java, baik itu class yang ada pada Java library maupun pada class yang anda buat.
Mungkin anda tidak menyadari, jadi sebenarnya ketika anda membuat class misalnya:
public class Buah {
}
class Buah tersebut inherit dari class Object. Namun tidak secara eksplisit dituliskan. Jika ingin menuliskan bisa saja dengan:
public class Buah extends Object{
}
Terus apa buktinya kalau class Buah inherit dari class Object?
Lihat contoh kode program simpel di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package com.bahasaJava.inheritance; public class Buah { public static void main (String args []){ Buah buah = new Buah(); //Karena class buah inherit dari class objek //Maka class buah bisa menggunakan method dari class Objek //Method getClass() adalah milik class objek System.out.println(buah.getClass()); //Method hashCode() adalah milik class objek System.out.println(buah.hashCode()); //Method toString() adalah milik class objek System.out.println(buah.toString()); } } |
Salah satu buktinya adalah class Buah bisa menggunakan method dari class Objek.
Bagaimana Inheritance Bekerja?
Jika anda akan menggunakan inheritance pada class anda, maka ujilah dengan menggunakan hubungan IS-A atau ADALAH-SUATU.Contohnya :
class Harimau inherit dari class Karnivora, maka Harimau adalah suatu Karnivora, ya ini logis. Namun jika
class Ayam inherit dari class Karnivora, apakah Ayam adalah suatu Karnivora? Tentu saja bukan.
Ok, sekarang lihat hirarki dari class JFrame yang juga menggunakan konsep inheritance misalnya:
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
Suatu subclass yang menerima pewarisan dari superclass-nya akan bisa menggunakan field-field serta method-method dari superclass-nya, selama acces modifiernya memenuhi syarat untuk itu.
Lihat contoh program di bawah ini untuk lebih jelasnya:
class Karnivora sebagai superclass.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
package com.bahasaJava.inheritance; public class Karnivora { private double berat; private String makanan, nama, jenis, lokasi; //Method getter dan setter untuk berat public double getBerat() { return berat; } public void setBerat(double berat) { this.berat = berat; } //Method getter dan setter untuk makanan public String getMakanan() { return makanan; } public void setMakanan(String makanan) { this.makanan = makanan; } //Method getter dan setter untuk nama public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; } //Method getter dan setter untuk jenis public String getJenis() { return jenis; } public void setJenis(String jenis) { this.jenis = jenis; } //Method getter dan setter untuk lokasi public String getLokasi() { return lokasi; } public void setLokasi(String lokasi) { this.lokasi = lokasi; } //Method untuk menampilkan detail karnivora public void tampilkanDetail(){ System.out.println("Nama : " + getNama()); System.out.println("Berat : " + getBerat() + " Kg"); System.out.println("Makanan : " + getMakanan()); System.out.println("Jenis : " + getJenis()); System.out.println("Lokasi : "+ getLokasi()); System.out.println(); } } |
class Harimau inherit dari class Karnivora :
1 2 3 4 5 6 7 8 9 |
package com.bahasaJava.inheritance; public class Harimau extends Karnivora { public Harimau(){ System.out.println("Ini adalah detail hewan Karnivora: Harimau"); } } |
class Anjing inherit dari class Karnivora :
1 2 3 4 5 6 7 8 9 |
package com.bahasaJava.inheritance; public class Anjing extends Karnivora { public Anjing(){ System.out.println("Ini adalah detail hewan Karnivora: Anjing"); } } |
class Demo untuk mendemonstrasikan inheritance :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
package com.bahasaJava.inheritance; public class Demo { public static void main(String args []){ Harimau harimau = new Harimau(); harimau.setNama("Harimau Sumatera"); harimau.setBerat(108.25); harimau.setJenis("Jantan"); harimau.setMakanan("Daging"); harimau.setLokasi("Sumatera, Indonesia"); harimau.tampilkanDetail(); Anjing anjing = new Anjing(); anjing.setNama("Anjing Dalmatian"); anjing.setBerat(20.65); anjing.setJenis("Betina"); anjing.setMakanan("Daging"); anjing.setLokasi("Kroasia"); anjing.tampilkanDetail(); } } |
Output:
Ini adalah detail hewan Karnivora: Harimau
Nama : Harimau Sumatera
Berat : 108.25 Kg
Makanan : Daging
Jenis : Jantan
Lokasi : Sumatera, Indonesia
Ini adalah detail hewan Karnivora: Anjing
Nama : Anjing Dalmatian
Berat : 20.65 Kg
Makanan : Daging
Jenis : Betina
Lokasi : Kroasia
Apakah Multiple Inheritance Diperbolehkan Pada Java?
Untuk lebih jelasnya lihat gambar di bawah ini :
![]() |
Multiple Inheritance tidak diperbolehkan dalam Java |
- class A adalah super class
- class B dan C adalah subclass dari class A
- class D adalah subclass dari class B dan C
Bila kita lihat gambar tersebut berbentuk diamond. Dalam Java dikenal dengan istilah menyeramkan yaitu Deadly Diamond of Death.
Leave a Reply