Java Inheritance (Subclass dan Superclass)
Di Java memungkinkan untuk mewariskan/menurunkan atribut dan method dari satu class ke class lainnya. Atau yang lebih dikenal dengan istilah pewarisan atau inheritance. Kita mengelompokkan konsep inheritance ke dalam dua kategori:
- subclass (anak) – class yang diturunkan dari class lainnya
- superclass (parent/orang tua) – class yang menurunkan/mewariskan
Untuk melakukan inheritance dari sebuah class, gunakan keyword extends.
Pada contoh di bawah ini, class Mobil (subclass) mewarisi atribut dan method dari class Kendaraan (superclass). Contoh :
class Kendaraan {
protected String merk = "Ford"; // Atribut class kendaraan
public void klakson() {
System.out.println("Tiin, tiin!");
}
}
class Mobil extends Kendaraan {
private String namaModel = "Mustang"; // Atribut class mobil
public static void main(String[] args) {
// Membuat object mobil
Mobil mobilSaya = new Mobil();
// Panggil method klakson() (dari class kendaraan) pada object mobilSaya
mobilSaya.klakson();
// Menampilkan nilai dari atribut merk (dari class kendaraan) dan nilai dari nama model dari class Mobil
System.out.println(mobilSaya.merk + " " + mobilSaya.namaModel);
}
}
Output :
Tiin, tiin!
Ford Mustang
Pada contoh di atas kita menggunakan modifier protected dalam class Kendaraan. Kita menetapkan atribut merk pada class Kendaraan sebagai modifier protected, jika kita menetapkan sebagai private, class Mobil tidak dapat mengakses itu.
Mengapa Menggunakan Inheritance?
Konsep inheritance atau pewarisan akan sangat berguna ketika suatu kode ingin digunakan kembali pada sebuah class baru atau menggunakan kembali atribut dan method dari sebuah class yang telah ada ketika Anda membuat sebuah class baru.
Tips: Lihat juga pada tutorial selanjutnya Polymorphism, yang menggunakan method yang diwariskan untuk melakukan berbagai tugas/fungsi.
Keyword final
Jika Anda tidak ingin class lain mewarisi dari sebuah class lainnya, gunakan keyword final. Contoh :
final class Kendaraan {
protected String merk = "Toyota";
public void klakson() {
System.out.println("Tiin, tiin!");
}
}
class Main extends Kendaraan {
private String namaModel = "Avanza";
public static void main(String[] args) {
Main mobilSaya = new Main();
mobilSaya.klakson();
System.out.println(mobilSaya.merk+ " " + mobilSaya.namaModel);
}
}
Maka akan menghasilkan seperti ini :
Main.java:8: error: cannot inherit from final Kendaraan
class Main extends Kendaraan {
^
1 error
Tutorial sebelumnya : Java Packages / API
Tutorial setelahnya : Contoh Polimorfisme Java
Semua Tutorial JAVA : Tutorial JAVA