Memahami Konsep Inheritance Di Java
Java adalah salah satu bahasa pemrograman yang paling populer dewasa ini. Salah satu fitur yang membuat Java menjadi begitu populer adalah konsep OOP (Object-Oriented Programming) yang memungkinkan kita untuk membuat program yang lebih terstruktur dan mudah dipahami. Salah satu konsep OOP yang penting di Java adalah Inheritance.
Pada artikel ini, kita akan membahas tentang konsep Inheritance di Java, bagaimana cara menggunakannya, dan contoh-contoh yang dapat membantu kita memahami konsep ini lebih baik.
Apa itu Inheritance?
Inheritance adalah proses di mana suatu kelas dapat mewarisi sifat-sifat dan perilaku dari kelas lain. Dalam Java, kita dapat membuat kelas turunan yang mewarisi sifat-sifat dan perilaku dari kelas induk. Kelas induk disebut sebagai superclass, sedangkan kelas turunan disebut sebagai subclass.
Bagaimana Cara Menggunakan Inheritance di Java?
Untuk menggunakan Inheritance di Java, kita harus membuat kelas superclass dan kelas subclass. Kelas superclass harus didefinisikan terlebih dahulu, lalu kelas subclass dapat mewarisi sifat-sifat dan perilaku dari kelas superclass.
Berikut adalah contoh cara menggunakan Inheritance di Java:
// Kelas Superclass
public class Hewan
private String nama;
public Hewan(String nama)
this.nama = nama;
public void makan()
System.out.println(nama + " sedang makan");
// Kelas Subclass
public class Kucing extends Hewan
public Kucing(String nama)
super(nama);
public voidtidur()
System.out.println(getNama() + " sedang tidur");
public String getNama()
return nama;
Pada contoh di atas, kita membuat kelas Hewan
sebagai superclass dan kelas Kucing
sebagai subclass. Kelas Kucing
mewarisi sifat-sifat dan perilaku dari kelas Hewan
, seperti metode makan()
. Selain itu, kelas Kucing
juga memiliki metode tidur()
yang khusus untuk kelas Kucing
.
Cara Mengakses Metode dan Variabel pada Kelas Superclass
Pada contoh sebelumnya, kita dapat melihat bahwa kelas Kucing
dapat mengakses metode makan()
pada kelas Hewan
secara langsung. Namun, bagaimana jika kita ingin mengakses variabel pada kelas Hewan
? Kita dapat menggunakan kata kunci super
untuk mengakses variabel dan metode pada kelas superclass.
Berikut adalah contoh cara mengakses variabel pada kelas superclass:
// Kelas Superclass
public class Hewan
private String nama;
public Hewan(String nama)
this.nama = nama;
public void makan()
System.out.println(nama + " sedang makan");
public String getNama()
return nama;
// Kelas Subclass
public class Kucing extends Hewan
public Kucing(String nama)
super(nama);
public void tidur()
System.out.println(super.getNama() + " sedang tidur");
Pada contoh di atas, kita dapat melihat bahwa kelas Kucing
dapat mengakses variabel nama
pada kelas Hewan
menggunakan metode getNama()
dan kata kunci super
.
Cara Mengoverride Metode pada Kelas Superclass
Pada contoh sebelumnya, kita dapat melihat bahwa kelas Kucing
dapat mewarisi metode makan()
pada kelas Hewan
. Namun, bagaimana jika kita ingin mengubah perilaku metode makan()
pada kelas Kucing
? Kita dapat menggunakan teknik overriding untuk mengubah perilaku metode pada kelas superclass.
Berikut adalah contoh cara mengoverride metode pada kelas superclass:
// Kelas Superclass
public class Hewan
private String nama;
public Hewan(String nama)
this.nama = nama;
public void makan()
System.out.println(nama + " sedang makan");
// Kelas Subclass
public class Kucing extends Hewan
public Kucing(String nama)
super(nama);
public void makan()
System.out.println("Kucing sedang makan ikan");
Pada contoh di atas, kita dapat melihat bahwa kelas Kucing
dapat mengoverride metode makan()
pada kelas Hewan
dengan perilaku yang berbeda.
Cara Menggunakan Abstrak Kelas dan Abstrak Metode
Pada contoh sebelumnya, kita dapat melihat bahwa kelas Hewan
dapat memiliki metode makan()
yang dapat diakses oleh kelas Kucing
. Namun, bagaimana jika kita ingin membuat kelas Hewan
menjadi abstrak, sehingga tidak dapat dibuat instance secara langsung? Kita dapat menggunakan abstrak kelas dan abstrak metode untuk mencapai hal ini.
Berikut adalah contoh cara menggunakan abstrak kelas dan abstrak metode:
// Kelas Abstrak
public abstract class Hewan
private String nama;
public Hewan(String nama)
this.nama = nama;
public abstract void makan();
// Kelas Subclass
public class Kucing extends Hewan
public Kucing(String nama)
super(nama);
public void makan()
System.out.println("Kucing sedang makan ikan");
Pada contoh di atas, kita dapat melihat bahwa kelas Hewan
didefinisikan sebagai abstrak kelas dengan metode abstrak makan()
. Kelas Kucing
dapat mewarisi kelas Hewan
dan mengimplementasikan metode abstrak makan()
.
Kesimpulan
Inheritance adalah konsep OOP yang memungkinkan kita untuk membuat kelas turunan yang mewarisi sifat-sifat dan perilaku dari kelas induk. Dalam Java, kita dapat menggunakan kata kunci extends
untuk membuat kelas turunan dan super
untuk mengakses variabel dan metode pada kelas superclass. Kita juga dapat menggunakan teknik overriding untuk mengubah perilaku metode pada kelas superclass. Selain itu, kita dapat menggunakan abstrak kelas dan abstrak metode untuk membuat kelas yang tidak dapat dibuat instance secara langsung dan harus diimplementasikan oleh kelas turunan.