Sunday, May 13, 2007

Java - Inheritance

Apa itu inherintance :
Penurunan atribut dan method dari super class ke sub classnya.
Beberapa prosudure :
1. sub class merupakan extend dari superclass
2.protected,public dan default adalah akses identifier yang dapat diwariskan
3.word super, harus berada pada baris pertama dalam konstruktor, hanya digunakan dalam pemanggilan konstruktor
4.Overriding, nama method di superclass dan sub class sama. tapi berbeda implementasi.
5.Method final dan statis tidak dapat di override
Contoh :
//super class :employee
public class Employee{
protected String name;
protected int nip;

//konstruktor
Employee(){
System.out.println("Konstruksi Employee I");
}

//overloading konstruktor
Employee(String name, int nip){
this.name = name;
this.nip = nip;
System.out.println("Konstruksi Employee II");
}

//fungsi cetak
public void cetak(){
System.out.println(this.name+" "+this.nip);
}
}

//sub class I turunan dari employee
class Manager extends Employee{
private int departemen;

//konstruktornya manager
Manager(int departemen){
super.name = "Ardi Priasa"; //set nama employee Ardi Priasa
super.nip = 64104004; //set nip untuk employee yang bernama Ardi Priasa
this.departemen = departemen; //set departemen untuk manager
System.out.println("Konstruksi Manager");
}

//overriding, beda dengan fungsi cetak employee krn cetak departemen
public void cetak(){
super.cetak();
System.out.println(super.name+" "+super.nip+" "+this.departemen);
}
}

//Penerapan
public class Output{
public static void main(String [] args){
Manager mngr = new Manager(100);
mngr.cetak();
}
}
//Outputnya
Konstruksi Employee I
Konstruksi Manager
Ardi Priasa 64104004 100

Bagaimana jika kita ingin employeenya dikontruksi oleh konstruktor II?
Jawab :
Ubah konstruktor managernya menjadi
Manager(int departemen){
super("Ardi Priasa",64104004);
this.departemen = departemen;
System.out.println("Konstruksi Manager");
}