プログラミング

Inheritance

Gambar Header

Oleh: Avrilian Briliansyah

Konsep

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.

Cara Kerja Inheritance

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.

Diagram

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:

Diagram

Setelah menggunakan inheritance, maka akan menjadi seperti ini:

Diagram

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();

Membuat Program Inheritance

Program yang akan kita buat untuk berfungsi untuk menghitung luas dan keliling bangun datar. Bentuk class diagramnya seperti ini :

Diagram Bangun Datar

File: inheritance/Persegi.java

File: inheritance/Lingkaran.java

File: inheritance/PersegiPanjang.java

File: inheritance/Segitiga.java

File: inheritance/Main.java

Output:

Sumber