Polymorphism adalam Fitur dalam Bahasa Program dimana data atau objek dengan
tipe berbeda, bisa dikelola melalui mekanisme atau interface yang sama
.
Jenis2 polimorfisma di antaranya:
1. Ad-hoc
polymorphism
Bila sebuah fungsi atau proses yang sama mempunyai implementasi
yang berbeda-beda, sesuai dengan jenis dari entitas yang memiliki proses
tersebut. Caranya melalui: method
overloading.
2. Parametric polymorphism.
Sebuah function atau a data type dapat dituliskan secara
generik sehingga dapat menangani nilai secara identik, tanpa tergantung tipe
datanya apa
.
3. Sub Type polymorphism/Inclusion Polymorphism
Satu objek merupakan sub tipe dari objek yang lain. Mekanismenya melalui inheritance atau subclassing
, dengan teknik yang disebut overriding.
Overloading dan Overriding
Overloading
Teknik
untuk menggunakan ulang nama method (dalam sebuah Class), tetapi dengan argumen
dan atau return value yang berbeda.
Dalam implementasi kode, sebuah method bisa dideklarasikan lebih dari satu kali, dan masing-masing mempunyai argumen atau parameter input yang berbeda.
Overriding
Teknik untuk
menggunakan ulang nama method (dari Class yang berbeda) dengan argumen dan
nilai balikan yang sama.
Pada teknik ini, dilakukan inheritance dari satu Class ke Class yang lain, dan method yang diturunkan pada Class Anak ditulis ulang.
Berikut contoh kode pada Overloading.
Class SepedaMotor()
{
public double CekHargaJual(int Tahun)
{
if (Tahun<2000) return 2000000;
else return 50000000;
}
public double CekHargaJual(String Merek, int Tahun)
{
if (Tahun<2000 && Merk!=“Honda”)
return 2000000;
else
return 3000000;
}
}
Pada contoh di atas, tampak untuk melakukan fungsi bernama CekHargaJual, ada dua method yang sama didefinisikan dalam satu Class, tetapi yang satu mempunyai satu argumen (Tahun), satunya lagi dua argumen (Merek dan Tahun). Teknik kode ini disebut Overloading.
Berikut adalah contoh kode pada Overriding.
Class MahlukHidup()
{
public void Makan()
{
System.out.println(“Dengan Tangan”);
};
public void Minum(){};
}
selanjutnya dibuat Class Manusia yang merupakan turunan dari Class MahlukHidup. Tetapi disini, method Makan ditulis ulang, sehingga cara Makan() Manusia tidak lagi sama dengan MahlukHidup.
Class Manusia extends MahlukHidup()
{
public void Berbicara(){};
public void Makan()
{
System.out.println(“Dengan Sendok”);
}
}
Teknik ini disebut overriding, yakni adanya proses menggantikan fungsi tertentu sehingga mempunyai penerapan yang berbeda, meskipun namanya sama.
No comments:
Post a Comment