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