Oleh: Avrilian Briliansyah
Inheritance adalah suatu konsep di OOP dimana anda dapat membuat class dengan yang pada dasarnya adalah turunan dari class lain. Class yang merupakan turunan dari class lain memiliki atribut dari class yang mewariskan dan dapat pula ditambah dengan atribut tambahan.
Class yang mewariskan disebut dengan superclass dan class yang menerima pewarisan disebut dengan subclass.
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. Misalkan dalam Game, kita akan membuat class-class musuh dengan perilaku yang berbeda.

Lalu kita membuat kode untuk masing-masing kelas seperti ini :
File: Zombie.java
class Zombie {
String name;
int hp;
int attackPoint;
void attack(){
// ...
}
void walk(){
// ...
}
}
File: Pocong.java
class Pocong {
String name;
int hp;
int attackPoint;
void attack(){
// ...
}
void jump(){
// ...
}
}
File: Burung.java
class Burung {
String name;
int hp;
int attackPoint;
void attack(){
// ...
}
void walk(){
// ...
}
void jump(){
// ...
}
void fly(){
// ...
}
}
Kalau kita perhatikan contoh diatas kita mendapati kalau kita menulis ulang hal yang sama beberapa kali.
Kita bisa menggunakan inheritance untuk menghindari hal tersebut.
Mari kita lihat member class yang sama:

Setelah menggunakan inheritance, maka akan menjadi seperti ini:

Class Enemy kini menjadi superclass untuk kelas Zombie, Pocong, dan Burung.
Kita akan menggunakan kata kunci extends ke Enemy untuk membuat class turunannya.
Bentuk kodenya akan seperti ini:
File: Enemy.java
class Enemy {
String name;
int hp;
int attackPoint;
void attack(){
// ...
}
}
File: Zombie.java
class Zombie extends Enemy {
void walk(){
// ...
}
}
File: Pocong.java
class Pocong extends Enemy {
void jump(){
// ...
}
}
File: Burung.java
class Burung extends Enemy {
void walk(){
// ...
}
void jump(){
// ...
}
void fly(){
// ...
}
}
Lalu, bila ingin membuat objek dari class-class tersebut, kita bisa membuatnya seperti ini:
Enemy monster = new Enemy();
Zombie zombi = new Zombie();
Pocong jefri = new Pocong();
Burung kecil = new Burung();
Program yang akan kita buat untuk berfungsi untuk menghitung luas dan keliling bangun datar. Bentuk class diagramnya seperti ini :

File: inheritance/Persegi.java

File: inheritance/Lingkaran.java

File: inheritance/PersegiPanjang.java

File: inheritance/Segitiga.java

File: inheritance/Main.java

Output:
