Mari Mengenal Lebih Dalam Tentang OOP
Belajar OOP | Wapblog21
Polymorphism sebuah kata dari bahasa Yunani yang mempunyai arti banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic bila kedua objek tersebut mempunyai (interface) antarmuka identik namun mempunyai perilaku yang berbeda. Dalam pemrograman, polimorpism dapat diartikan sebagai modul yang memiliki nama sama, namun memiliki behaviour yang berbeda sehingga listing code implementasinya juga berbeda. Kondisi yang harus dipenuhi supaya polimorfisme dapat diimplementasikan adalah :
- Method yang dipanggil harus melalui variabel dari basis class atau superclass.
- Method yang dipanggil harus juga menjadi method dari basis class.
- Signature method harus sama baik pada superclass maupun subclass.
- Method access attribute pada subclass tidak boleh lebih terbatas dari basis class.
Program :
___________________________________________________________
Class Bentuk:
package Polymorphism;
abstract class Bentuk{
protected int panjang;
protected int lebar;
public String getBentuk(){
return “Bentuk Dasar”;
}
public abstract int hitungLuas();
}
___________________________________________________________
Class BujurSangkar:
package Polymorphism;
class BujurSangkar extends Bentuk {
public BujurSangkar(int panjang1, int lebar1) {
this.panjang = panjang1;
this.lebar = lebar1;
}
public String getBentuk() {
return “Bentuk Bujur Sangkar”;
}
public int hitungLuas() {
return panjang*lebar;
}
}
____________________________________________________________
Class SegiTiga:
package Polymorphism;
class SegiTiga extends Bentuk {
public SegiTiga(int panjang2, int lebar2) {
this.panjang = panjang2;
this.lebar = lebar2;
}
public String getBentuk() {
return “Bentuk Segitiga”;
}
public int hitungLuas() {
return this.panjang*this.lebar/2;
}
}
______________________________________________________________
Class Polymorphism:
package Polymorphism;
class SegiTiga extends Bentuk {
public SegiTiga(int panjang2, int lebar2) {
this.panjang = panjang2;
this.lebar = lebar2;
}
public String getBentuk() {
return “Bentuk Segitiga”;
}
public int hitungLuas() {
return this.panjang*this.lebar/2;
}
}
_________________________________________________________
Output:
Bentuk Bujur Sangkar dengan luas 100
Bentuk Segitiga dengan luas 25
_________________________________________________________
Kesimpulan Program:
Bentuk diatas terdiri dari 2 bentuk, yaitu bentuk bujur sangkar dan bentuk segitiga, mereka mempunyai Interface yang sama (panjang dan lebar), meskipun mereka mempunyai interface yang sama akan tetapi mereka mempunyai jumlah luas/perhitungan luas yang berbeda (behavior), Konsep ini juga sering disebut Interface banyak aksi.
Emoticon Emoticon