Tutorial OOP Java Part 7: Cara Membuat Multiple Inheritance

Tutorial OOP Java kali ini masih membahas tentang inheritance atau pewarisan class. Namun kita akan masuk ke materi yang lebih advanced lagi, yakni cara membuat multilevel inheritance.


Pengertian Multilevel Inheritance

Multilevel Inheritance adalah pewarisan class berjenjang dari satu class ke class lain. Misalkan kita memiliki class A yang diturunkan kepada class B. Kemudian class B ini juga diturunkan kepada class C, sehingga sudah terjadi sebuah multilevel inheritance.

Dalam contoh ini class A adalah kakek atau grand parent dari class C, maka semua property dan method dari class A juga bisa diakses dari class C.

Berikut struktur dasar contoh multilevel inheritance dengan class Komputer, class Laptop, dan class Netbook:

class Komputer {
  // kode untuk class Komputer
}

class Laptop extends Komputer {
  // kode untuk class Laptop
}


class Netbook extends Laptop {
  // kode untuk class Netbook
}

class BelajarJava {
  public static void main(String args[]){
    Komputer komputerAndi = new Komputer();
    Laptop laptopAndi = new Laptop();
    Netbook netbookAndi = new Netbook();
  }
}

Cara pembuatan multilevel inheritance sebenarnya sama seperti pewarisan class biasa, hanya saja setiap class saling terhubung satu sama lain.

Hubungan "is-a" antara child class dengan parent class juga harusnya berlaku dalam multilevel inheritance. Dalam contoh diatas, Netbook adalah sebuah Laptop, dan Laptop adalah sebuah Komputer. Dengan demikian Netbook juga adalah sebuah Komputer.

Contoh Kode Program Multilevel Inheritance Java

Contoh sebelumnya sudah memperlihatkan struktur dasar multilevel inheritance. Berikut modifikasi lanjutan dengan penambahan property dan method:

class Komputer {
  String processor = "Intel Core i9"; 
  String merk = "Asus"; 
  String memory = "16 GB";
  
  String cekKomputer() { 
    return "Ini berasal dari class Komputer"; 
  }
}

class Laptop extends Komputer {
  String storage = "SSD 1TB";

  String cekLaptop() { 
    return "Ini berasal dari class Laptop"; 
  }
}

class Netbook extends Laptop {
  String lihatSpec() { 
    return "Merk: " + merk + ", processor: "+ processor + 
           ", jumlah memory: " + memory + 
           ", storage: "+ storage; 
  } 
  String cekNetbook() { 
    return "Ini berasal dari class Netbook"; 
  }
}

class BelajarJava {
  public static void main(String args[]){
    
    Netbook netbookAndi = new Netbook();
    
    System.out.println(netbookAndi.lihatSpec());
    System.out.println(netbookAndi.cekKomputer());
    System.out.println(netbookAndi.cekLaptop());
    System.out.println(netbookAndi.cekNetbook());
  
  }
}

Hasil kode program:

Tutorial OOP Java Cara Membuat Multiple Inheritance

Kode program ini lumayan panjang karena terdapat 3 class yang masing-masingnya memiliki property dan method. Agar lebih mudah dipahami, kita bahas dari method main() di class BelajarJava terlebih dahulu.

Sebagai perintah pertama di dalam method main(), terdapat kode Netbook netbookAndi = new Netbook(). Ini adalah proses instansiasi pembuatan object class Netbook yang disimpan ke dalam variabel netbookAndi. Dengan membaca kode ini kita bisa pastikan bahwa harusnya ada kode untuk pendefinisian class Netbook.

Setelah proses instansiasi, terdapat kode System.out.println(netbookAndi.lihatSpec()). Maka kita akan lihat apa isi dari method lihatSpec() yang terdapat di dalam class Netbook.

Pendefinisian class Netbook ada di baris 19-28. Di baris awal terlihat bahwa class Netbook adalah turunan dari class Laptop. Maka method lihatSpec() bisa saja ada di dalam class ini, atau parent classnya.

Ternyata pendefinisian method lihatSpec() ada di dalam class Netbook, yang isinya merangkai sebuah string dari 4 property, yakni merk, processor, memory dan storage. Namun di dalam class Netbook tidak ada pendefinisian data ini. Maka kita akan cari ke parent class, yaitu class Laptop.

Pendefinisian class Laptop ada di baris 11-17. Di baris awal juga terlihat bahwa class ini ternyata juga memiliki parent class, yakni class Komputer. Sehingga bisa saja property yang kita cari tidak ada di dalam class Laptop.

Dan ternyata di dalam class Laptop hanya ada 1 property, yakni storage = "SSD 1TB". Maka kita harus cari lagi ke dalam class Komputer.

Pendefinisian class Komputer ada di baris 1-9. Dan disinilah ditemukan sisa 3 property lain, yakni processor = "Intel Core i9", merk = "Asus" dan memory = "16 GB".

Maka lengkap sudah isi dari pemanggilan method netbookAndi.lihatSpec(), dan hasilnya adalah "Merk: Asus, processor: Intel Core i9, jumlah memory: 16 GB, storage: SSD 1TB".

Kita kembali ke method main() dan 3 perintah berikutnya dipakai untuk mengakses 3 method:

System.out.println(netbookAndi.cekKomputer());
System.out.println(netbookAndi.cekLaptop());
System.out.println(netbookAndi.cekNetbook());

Ketiga method ini ada di setiap class terpisah. Karena class Netbook adalah turunan dari class Laptop dan class Laptop sendiri adalah turunan dari class Komputer, maka object netbookAndi bisa mengakses ketiga method tersebut.


Dalam tutorial ini kita telah melihat contoh praktek dari multilevel inherintance dalam bahasa pemrograman Java. Masih terkait penurunan atau inheritance, tutorial berikutnya akan membahas tentang method overriding.

4 Comments

  1. Decepo
    04 Dec 23
  2. Decepo
    04 Dec 23
    • Andre
      21 Dec 23
  3. Durog
    22 Jan 24

Add Comment