Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah class dapat ‘menurunkan’ property dan method yang dimilikinya kepada class lain. Konsep inheritance digunakan untuk memanfaatkan fitur ‘code reuse’ untuk menghindari duplikasi kode program.
Konsep inheritance membuat sebuah struktur atau ‘hierarchy’ class dalam kode program. Class yang akan ‘diturunkan’ bisa disebut sebagai class induk (parent class), super class, atau base class. Sedangkan class yang ‘menerima penurunan’ bisa disebut sebagai class anak (child class), sub class, derived class atau heir class.
Tidak semua property dan method dari class induk akan diturunkan. Property dan method dengan hak akses private, tidak akan diturunkan kepada class anak. Hanya property dan method dengan hak akses protected dan public saja yang bisa diakses dari class anak.
ISTILAH INHERITANCE
inheritance / penurunan dari sebuah class kepada class lain menggunakan kata kunci: ‘extends’, dengan penulisan dasar sebagai berikut:
- Extend : Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.
- Superclass : perclass digunakan untuk menunjukkan hirarki class yang berarti class dasar dari subclass/class anak.
- Subclass : bclass adalah class anak atau turunan secara hirarki dari superclass.
- Super : Keyword ini digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass.
- Methode Overriding ; Pen-definisi-an ulang method yang sama pada subclass
Dalam inheritance, method overriding berbeda dengan method overloading. Kalau method overriding adalah mendefinisikan kembali method yang sama, baik nama method maupun signature atau parameter yang diperlukan dalam subclass, kalau method overloading adalah mendefinisikan method yang memiliki nama yang sama, tetapi dengan signature yang berbeda dalam definisi class yang sama.
Cara Penggunaan Inheritance
Kelas Animal merupakan superclass dari program yang nantinya kelas ini bisa diwariskan ke kelas lainnya.
public class Animal {
public String nama;
public int umur;
public void makan(){
System.out.println(“Sedang Makan”);
}
public void mengeluarkan Suara(){
System.out.println(“Sedang Bersuara”);
}
}
Kelas kucing merupakan subclass dari kelas Animal, karena itu kelas ini akan mewarisi atribut dari kelas Animal.
public class Kucing extendsAnimal{
@Override
public void mengeluarkan Suara()
{System.out.println(“Meong”);
}
}
AnimalTest.java
Kelas ini yang berfungsi sebagai driver untuk menjalankan program, atau bisa disebut juga dengan Main Class.
public class AnimalTest{
public static void main(String[] args)
{
Animal animal1 = new Animal();
animal1.nama = “Binatang Abstrak”;
animal1.mengeluarkanSuara();
Kucing kucing1 = new Kucing();
kucing1.nama = “Kitten”;
kucing1.mengeluarkanSuara();
Animal animal2 = new Kucing();
animal2.nama = “Mew”;
}
}
Inilah yang dimaksud dengan enkapsulasi dalam OOP. Membatasi method yang tidak boleh diakses akan membuat kode program menjadi lebih terstruktur.
Referensi/Sumber :https://www.duniailkom.com/tutorial-belajar-oop-php-pengertian-inheritance-pewarisan/