OOP (Object Oriented Programming) - INHERITENCE

OOP (Object Oriented Programming) - INHERITENCE





Inheritance dalam bahasa indonesia adalah Pewarisan/Penurunan, 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" adalah parent class/super class/base class. Sedangkan class yang "menerima penurunan" adalah child class/sub class/derived class/heir class.

Tidak semua property dan method dari class induk akan diturunkan. Property dan method dengan hak akses private, tidak akan diturunkan kepada sub class. Hanya property dan method dengan hak akses protected dan public saja yang bisa diakses dari sub class.

KEUNTUNGAN INHERITANCE :
  • Sub class menyediakan behaviour yang spesifik yang membedakannya dengan super class, dapat memungkinkan programmer java untuk menggunakan source code dari super class yang sudah ada.
  • Programmer Java dapat mendefinisikan super class khusus yang bersifat generik, yang disebut abstract class, untuk mendefinisikan class dengan behaviour dan state secara umum.


ISTILAH INHERITANCE :
  • Extends : keyword untuk mengubah class menjadi subclass.
  • Super Class : adalah class yang berarti parent class dari subclass.
  • Sub Class : adalah class turunan dari super class/parent class.
  • Super Keyword : untuk memanggil konstruktor dari super class atau menjadi variabel yang mengacu pada super class.
  • Methode Overriding : Pendefinisian ulang method yang sama pada subclass.

Dalam inheritance, method overriding berbeda dengan method overloading.

Jika method overriding adalah mendefinisikan kembali method yang sama,  nama method ataupun signature atau parameter yang diperlukan dalam sub class,
Sedangkan method overloading adalah mendefinisikan method yang memiliki nama yang sama saja.

Contoh Program:




SuperClass : Person
SubClass : Dosen dan Mahasiswa

Person (Sebagai Super Class)
class Person{
private String Nama;
private String Alamat;
private int Umur;

public Person(){

}

public Person(String Nama, String Alamat, int Umur){
this.Nama = Nama;
this.Alamat = Alamat;
this.Umur = Umur;
}

public String getNama(){
return Nama;
}

public String getAlamat(){
return Alamat;
}

public int getUmur(){
return Umur;
}

public void setNama(String Nama){
this.Nama = Nama;
}

public void setAlamat(String Alamat){
this.Alamat = Alamat;
}

public void setUmur(int Umur){
this.Umur = Umur;
}

public void infoPerson() {
System.out.println("\nInfo Person");
System.out.println("Nama\t\t: " + getNama());
System.out.println("Alamat\t\t: " + getAlamat());
System.out.println("Umur\t\t: " + getUmur());
}
}

Dosen (Sebagai Sub Class)
class Dosen extends Person{
private String idDosen;

public Dosen(){
}
style="white-space: pre;">
public Dosen(String Nama, String Alamat, int Umur, String idDosen){
super(Nama, Alamat, Umur);
this.idDosen = idDosen;
}

public String getIdDosen(){
return idDosen;
}

public void setIdDosen(String idDosen){
this.idDosen = idDosen;
}

public void infoDosen(){
System.out.println("\nInfo Dosen");
System.out.println("idDosen\t\t: " + getIdDosen());
System.out.println("Nama\t\t: " + getNama());
System.out.println("Alamat\t\t: " + getAlamat());
System.out.println("Umur\t\t: " + getUmur());
}


Mahasiswa (Sebagai Sub Class)
class Mahasiswa extends Person{
private String NIM;

public Mahasiswa(){
}

public Mahasiswa(String Nama, String Alamat, int Umur, String NIM){
super(Nama, Alamat, Umur);
this.NIM = NIM;
}

public String getNIM(){
return NIM;
}

public void setNIM(String NIM){
this.NIM = NIM;
}

public void infoMahasiswa(){
System.out.println("\nInfo Mahasiswa");
System.out.println("NIM\t\t: " + getNIM());
System.out.println("Nama\t\t: " + getNama());
System.out.println("Alamat\t\t: " + getAlamat());
System.out.println("Umur\t\t: " + getUmur());
}

}

Tampil (Menampilkan Data)
class tampil{
public static void main(String[]asdasd){
Person a = new Person("Gardha","Jakarta Timur",XY);
a.infoPerson();

Dosen b = new Dosen("Aksen","Jakarta",50,"17.10.09");
b.infoDosen();

Mahasiswa c = new Mahasiswa("Ridwan","Medan",21,"311422034");
c.infoMahasiswa();
System.out.println("-----------------------------------");
}
}

Hasil :







Komentar