Polimorfisme pada Java + Contoh Code
Dalam pemrograman berorientasi object kita mengenal suatu
istilah yaitu “ Polimorfisme ”, yaitu suatu teknik dalam programming yang lebih
mengarahkan kita untuk memprogram secara general dari pada secara spesifik.
Sebagai contoh seumpama kita memiliki 3 class berbeda yaitu: “Motor”, “Mobil”
dan “Pesawat”. Dimana ketiga class tersebut adalah turunan dari class
“Kendaraan”.
Dalam kelas kedaraan terdapat suatu method yaitu
“Move()”, akan tetapi apakah method “Move()” akan memberikan hasil yang sama
pada tiga class tersebut. Dimana jika method “Move()” dipanggil pada class
“Motor” akan menghasilkan perpindahan 30Km, jika pada class “Mobil” akan
menghasilkan perpindahan 70Km dan jika dipanggil pada class “Pesawat” akan
menghasilkan perpindahan 300Km. Hal inilah yang kita sebut sebagai
Polimorfisme, yaitu
penggunaan method yang sama, yang akan menghasilkan suatu hasil yang berbeda
tergantung class yang menggunakan method tersebut.
Berikut ini
adalah contoh program java yang menggunakan polimorfisme :
//Class kendaraan.java
public class
Kendaraan {
private int
posisi;
public
Kendaraan(int posisi) {
this.posisi = posisi;
}
this.posisi = posisi;
}
public void
Move() {
return;
}
return;
}
public int
getPosisi() {
return posisi;
}
return posisi;
}
public void
setPosisi(int posisi) {
this.posisi = posisi;
}
}
this.posisi = posisi;
}
}
//Class motor.java
public class
Motor extends Kendaraan {
public Motor(int
posisi) {
super(posisi);
}
super(posisi);
}
@Override
public void Move() {
setPosisi(getPosisi() + 30);
}
}
public void Move() {
setPosisi(getPosisi() + 30);
}
}
//Class mobil.java
public class
Mobil extends Kendaraan {
public Mobil(int
posisi) {
super(posisi);
}
super(posisi);
}
@Override
public void Move() {
setPosisi(getPosisi() + 70);
}
}
public void Move() {
setPosisi(getPosisi() + 70);
}
}
//Class pesawat.java
public class
Pesawat extends Kendaraan {
public
Pesawat(int posisi) {
super(posisi);
}
super(posisi);
}
@Override
public void Move() {
setPosisi(getPosisi() + 300);
}
}
public void Move() {
setPosisi(getPosisi() + 300);
}
}
//Class Main.java
public class
Main {
public static
void main(String[] args) {
Kendaraan
kendaraan[] = new Kendaraan[3];
int posisi = 10;
kendaraan[0] = new Motor(posisi);
kendaraan[1] = new Mobil(posisi);
kendaraan[2] = new Pesawat(posisi);
System.out.println(“Intansiasi 3 Object Turunan Class Kendaraan”);
System.out.println(” -kendaraan[0] merupakan instantsiasi dari class ”
+ “Motor dengan posisi awal ” + posisi);
System.out.println(” -kendaraan[1] merupakan instantsiasi dari class ”
+ “Mobil dengan posisi awal ” + posisi);
System.out.println(” -kendaraan[2] merupakan instantsiasi dari class ”
+ “Pesawat dengan posisi awal ” + posisi);
int posisi = 10;
kendaraan[0] = new Motor(posisi);
kendaraan[1] = new Mobil(posisi);
kendaraan[2] = new Pesawat(posisi);
System.out.println(“Intansiasi 3 Object Turunan Class Kendaraan”);
System.out.println(” -kendaraan[0] merupakan instantsiasi dari class ”
+ “Motor dengan posisi awal ” + posisi);
System.out.println(” -kendaraan[1] merupakan instantsiasi dari class ”
+ “Mobil dengan posisi awal ” + posisi);
System.out.println(” -kendaraan[2] merupakan instantsiasi dari class ”
+ “Pesawat dengan posisi awal ” + posisi);
for (int i = 0;
i < kendaraan.length(); i++) {
System.out.println(“Object [” + i + “] memanggil method move”);
System.out.println(“Posisi sebelum method move() dipanggil : ” + kendaraan[i].getPosisi());
kendaraan[i].Move();
System.out.println(“Posisi setelah method move() dipanggil : ” + kendaraan[i].getPosisi());
System.out.println();
}
System.out.println(“Object [” + i + “] memanggil method move”);
System.out.println(“Posisi sebelum method move() dipanggil : ” + kendaraan[i].getPosisi());
kendaraan[i].Move();
System.out.println(“Posisi setelah method move() dipanggil : ” + kendaraan[i].getPosisi());
System.out.println();
}
}
}
Selain itu, dalam java juga dikenalkan sebuah keyword untuk mengetahui bentuk instance suatu object, yaitu instanceof untuk penggunaannya mari kita modifikasi saja main.java dari program diatas sehingga menjadi seperti berikut ini
}
Selain itu, dalam java juga dikenalkan sebuah keyword untuk mengetahui bentuk instance suatu object, yaitu instanceof untuk penggunaannya mari kita modifikasi saja main.java dari program diatas sehingga menjadi seperti berikut ini
public class
Main {
public static
void main(String[] args) {
Kendaraan
kendaraan[] = new Kendaraan[3];
int posisi = 10;
kendaraan[0] = new Motor(posisi);
kendaraan[1] = new Mobil(posisi);
kendaraan[2] = new Pesawat(posisi);
int posisi = 10;
kendaraan[0] = new Motor(posisi);
kendaraan[1] = new Mobil(posisi);
kendaraan[2] = new Pesawat(posisi);
if (kendaraan[0]
instanceof Motor) {
System.out.println(“Kendaraan[0] merupakan instanceof Motor”);
}
System.out.println(“Kendaraan[0] merupakan instanceof Motor”);
}
if (kendaraan[1]
instanceof Motor) {
System.out.println(“Kendaraan[1] merupakan instanceof Motor”);
}
}
}
System.out.println(“Kendaraan[1] merupakan instanceof Motor”);
}
}
}
0 Komentar