Belajar Memahami Konsep Inheritance Pada Java

Apa Itu Inheritance dan Mengapa Penting Dipahami Dalam Belajar Java?

Dalam berguru Java untuk pemula, memahami Inheritance yakni hal yang sangat penting. Inheritance merupakan salah satu dari 4 konsep dari pemrograman Java yang mendasar selain dari Encapsulation, Polymorphism dan  Abstraction. Inheritance bersifat krusial alasannya yakni mempunyai imbas eksklusif pada bagaimana anda mendesain class-class.

Konsep ini sebetulnya mempunyai tujuan yaitu ketika anda menciptakan suatu class maka anda hanya perlu menspesifikasikan apa yang menjadi perbedaan antara suatu class dengan class lainnya, lalu secara otomatis inheritance ini akan menunjukkan kanal otomatis terhadap warta yang terkandung dari class lainnya.

Keyword untuk inheritance atau pewarisan yakni extends.

Class yang mewariskan disebut dengan superclass dan class yang mendapatkan pewarisan disebut dengan subclass.

 Apa Itu Inheritance dan Mengapa Penting Dipahami Dalam Belajar Java Belajar Memahami Konsep Inheritance Pada Java


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 sebetulnya ketika anda menciptakan class misalnya:

public class Buah {

}

class Buah tersebut inherit dari class Object. Namun tidak secara eksplisit dituliskan. Jika ingin menuliskan sanggup saja dengan:

public class Buah extends Object{

}


Terus apa buktinya kalau class Buah inherit dari class Object?

Lihat tumpuan isyarat aktivitas simpel di bawah ini:

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 sanggup memakai method dari class Objek      //Method getClass() yakni milik class objek   System.out.println(buah.getClass());      //Method hashCode() yakni milik class objek   System.out.println(buah.hashCode());      //Method toString() yakni milik class objek   System.out.println(buah.toString());        }  } 

Salah satu buktinya yakni class Buah sanggup memakai method dari class Objek.

Bagaimana Inheritance Bekerja?

Jika anda akan memakai inheritance pada class anda, maka ujilah dengan memakai 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, kini lihat hirarki dari class JFrame yang juga memakai konsep inheritance misalnya:

java.lang.Object  
           java.awt.Component 
                    java.awt.Container 
                          java.awt.Window 
                                       java.awt.Frame 
                                                   javax.swing.JFrame


Suatu subclass yang mendapatkan pewarisan dari superclass-nya akan sanggup memakai field-field serta method-method dari superclass-nya, selama acces modifiernya memenuhi syarat untuk itu.

Lihat tumpuan aktivitas di bawah ini untuk lebih jelasnya:

class Karnivora sebagai superclass.

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 kuliner  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 :

package com.bahasaJava.inheritance;  public class Harimau extends Karnivora {    public Harimau(){   System.out.println("Ini yakni detail binatang Karnivora: Harimau");  }   } 

class Anjing inherit dari class Karnivora :

package com.bahasaJava.inheritance;  public class Anjing extends Karnivora {    public Anjing(){   System.out.println("Ini yakni detail binatang Karnivora: Anjing");  }   } 

class Demo untuk mendemonstrasikan inheritance :

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 yakni detail binatang Karnivora: Harimau
Nama : Harimau Sumatera
Berat : 108.25 Kg
Makanan : Daging
Jenis : Jantan
Lokasi : Sumatera, Indonesia

Ini yakni detail binatang Karnivora: Anjing
Nama : Anjing Dalmatian
Berat : 20.65 Kg
Makanan : Daging
Jenis : Betina
Lokasi : Kroasia

Apakah Multiple Inheritance Diperbolehkan Pada Java?

Java tidak mengizinkan multiple inheritance.

Untuk lebih jelasnya lihat gambar di bawah ini :

 Apa Itu Inheritance dan Mengapa Penting Dipahami Dalam Belajar Java Belajar Memahami Konsep Inheritance Pada Java
Multiple Inheritance tidak diperbolehkan dalam Java

Keterangan :
  • class A yakni super class
  • class B dan C yakni subclass dari class A
  • class D yakni subclass dari class B dan C





Bila kita lihat gambar tersebut berbentuk diamond. Dalam Java dikenal dengan istilah menakutkan yaitu Deadly Diamond of Death.

Kira-kira duduk kasus apa yang terjadi sehabis melihat gambar di atas?

Misalkan class A mempunyai method, lalu method tersebut di overriding oleh class B dan class C .
Masalah yang terjadi yakni ketika kita menciptakan objek atau instantiate objek dari class D.

Karena class D merupakan inherit dari class B dan C, maka ketika D ingin memakai method yang sama, method mana yang akan dipanggil? Apakah method yang sudah di-overriding oleh class B ataukah method yang sudah di-overriding oleh class C? Tentunya menjadi hal yang tidak terperinci atau ambigu. Atas dasar inilah, maka Java tidak mengizinkan multiple inheritance.

Terus bagaimana Java mengatasi hal ini?
Java mengatasinya dengan menciptakan class yang 100% persen abstract, atau dikenal dengan interface, tapi ini bukan interface yang ada pada GUI, melainkan keyword Java interface. 

Dengan interface, duduk kasus pada Deadly Diamond of Death (DDD) diatasi dengan menciptakan semua method menjadi abstract, alasannya yakni method abstract harus diimplementasikan oleh subclass pertama yang kongkrit.

Subclass harus mengimplementasikan method-method tersebut, sehingga ketika runtime Java Virtual Machine (JVM) tidak 'dipusingkan' mengenai method mana dari dua versi inherit yang harus dipanggil.

Keuntungan Dari Konsep Dari Inheritance 

Keuntungan dari penggunaan inheritance yakni menghindari penggunaan isyarat yang sama atau duplikat pada subclass. Lho kok bisa? 

Tentu saja bisa, alasannya yakni menyerupai dijelaskan di atas, subclass sanggup memakai method yang dimiliki oleh superclass, atau istilahnya pada Java dikenal dengan Overriding method.

Bagaimana efeknya dalam koding?

Tentunya efeknya akan mengurangi jumlah isyarat pemrograman, dan proses koding akan lebih clear dan gampang dipahami. Konsep inheritance mempermudah para programmer untuk ekspansi suatu objek tanpa harus menciptakan fungsi baru.


Belum ada Komentar untuk "Belajar Memahami Konsep Inheritance Pada Java"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel