Kamis, 07 Mei 2009

Konsep OOP - Polymorphism Overiding

Salah satu dari karakteristik Object Oriented Programming (OOP) adalah Polymorphism.
Polymorphism itu suatu obyek yang memiliki sifat yang sama dengan parent nya atau pada class nya sendiri. Sifat obyeknya ini bisa dalam bentuk yang berbeda-beda. Bisa terjadi banyak perubahan sifat pada subclass nya.
Polymorphism itu sendiri terbagi dua yaitu: Overloading dan Overiding.

Overiding sifatnya menimpa suatu obyek dari class itu sendiri atau subclassnya. Misalnya kita punya class Kendaraan sebagai suatu parent class.

class Kendaraan{
String jenisKendaraan;
int tahunBuat;

//method jenisKendaraan
void jenisKendaraan(String JK){
jenisKendaraan = JK;
System.out.println(”Jenis Kendaraan: “+jenisKendaraan);
}

//method tahunBuat
void tahunBuat(int TB){
tahunBuat = TB;
System.out.println(”Tahun Buat: “+tahunBuat);
}
}

Lalu kita buatkan subclass dan di overide method tahunBuatnya dengan contoh berikut ini

public class SepedaMotor extends Kendaraan{
String merkMotor;
int tahunIni;

public void merkMotor(String merkM){
merkMotor = merkM;
System.out.println(”Merk Kendaraan: “+merkMotor);
}

//melakukan overiding
void tahunBuat(int TB){
tahunBuat = TB;
tahunIni = 2008-tahunBuat;
System.out.println(”Sudah “+tahunIni+ ” tahun, sejak motor ini dibuat”);
}
}

Kemudian kita coba jalankan dengan program berikut:

classMotorAksi

public static void main(String[]args){

//buat object

SepedaMotor motorku = new SepedaMotor();

//panggil method

Motorku.jenisKendaraan(“Sepeda Motor”);

Motorku.tahunBuat(2006);

}

}

Nah ketika dicoba
lihat hasilnya bila method tahunBuat di class SepedaMotor di hilangkan.
Kemudia di compile lagi class SepedaMotor dan jalankan lagi MotorAksi nya

Jenis Kendaraan: Sepeda Motor

Sudah 3 tahun, sejak motor ini dibuat

Kesimpulannya:
method tahunBuat pada class Kendaraan, yang seharusnya akan dituliskan sebagai tahun pembuatannya, ditimpa dengan method tahunBuat pada class SepedaMotor menjadi selisih tahun sekarang (tahun 2009) di kurangi tahun buatnya