Kamis, 26 November 2009

Polimorphism

Polymorphism berarti suatu object yang dapat memiliki berbagai bentuk, sebagai object dari classnya sendiri atau object dari superclassnya.

Dalam polymorphism dikenal overloading dan overriding.

  • OVERLOADING : penggunaan satu nama dalam beberapa method yang berbeda parameter.

Maksudnya dalam satu class, terdapat beberapa method yang namanya sama, tapi parameter/tipe parameternya berbeda.

Contohnya :

class Lingkaran{
public buatLingkaran(int diameter){
...
}
public buatLingkaran(int diameter, int x, int y){
...
}
public buatLingkaran(int diameter, int x, int y, int
warna, String namaLingkaran){
...
}
}

  • OVERRIDING : terjadi ketika deklarasi method subclass sama dengan method dari superclass.

Yaitu method pada class atau class turunan namanya sama, parameter dan tipe parameternya sama, tetapi proses dalam method berbeda.

Contohnya pada class Sepeda

Sepeda.java

class Sepeda{

//deklarasi atribut

int kecepatan = 0;
int gir = 0;

// membuat method ubahGir dengan parameter pertambahanGir bertipe integer
void ubahGir(int pertambahanGir) {

gir= gir+ pertambahanGir;
System.out.println(“Gir:” + gir);

}

//membuat method tambahKecepatan dengan parameter pertambahanKecepatan
void tambahKecepatan(int pertambahanKecepatan) {

kecepatan = kecepatan+pertambahanKecepatan;
System.out.println(“Kecepatan:” +kecepatan);

}

}

Dalam kasus ini, Sepeda.java memiliki class turunan, yaitu SepedaGunung.java yang memiliki overriding method dari class Sepeda. Coba perhatikan ..

SepedaGunung.java

class SepedaGunung extends Sepeda {

//deklarasi atribut atau variabel

int setSadel;

//overriding method ubahGir dari class Sepeda
void ubahGir(int pertambahanGir) {

gir= 2*(gir+ pertambahanGir );
System.out.println(“Gir:” + gir);

}

}

Disana terlihat bahwa ada persamaan method, parameter dan tipe parameter dari Sepeda.java dan SepedaGunung.java, yaitu method ubahGir .. Selanjutnya kita tinggal membuat tes programnya. Kita beri nama class SepedaGunungBeraksi ..

SepedaGunungBeraksi.java

class SepedaGunungBeraksi {

public static void main(String[]args) {

// Membuat object dari class SepedaGunung
SepedaGunung sepedaku = new sepedaGunung();

// Memanggil method dan mengisi nilai parameter
sepedaku.tambahKecepatan(10);
sepedaku.ubahGir(2);
sepedaku.setSadel(20);

}

}

Tidak ada komentar:

Posting Komentar