Untuk mempermudah dalam memahami konsep ini. Kita ambil contoh. Misalnya sebuah kelas induk dengan nama Penyanyi, yang akan diturunkan lagi menjadi kelas PenyanyiJazz, PenyanyiPop, PenyanyiDangdut. Pada saat kita memilih 5 orang penyanyi untuk menyanyikan suatu lagu, maka kelima penyanyi tersebut pasti akan menyanyi dengan karakteristiknya masing-masing. Artinya apabila dia adalah penyani jazz maka pola nada atau irama yang dia nyanyikan tentu akan kental dengan nuansa jazz. begitu pula apabila dia merupakan seorang penyanyi pop maupun dangdut, maka nadanya juga akan berirama pop atau dangdut. Berikut ini contoh implementasi kasus tersebut ke dalam kode program.
Kelas Penyanyi :
Kelas turunan PenyanyiJazz :
Kelas turunan PenyanyiPop :
Kelas turunan PenyanyiDangdut :
Main Program DemoPolimorfisme :
Output Program :
Seperti yang dilihat diatas, kita mendeklarasikan variabel aaaareferensi ke tipe Penyanyi dengan nama p. Sampai disini, kita belum mengetahui apakah p merupakan penyanyi jazz, penyanyi pop, ataukah penyanyi dangdut. Namun pada saat p mengacu ke objek dari kelas PenyanyiJazz, kemudian kita memanggil method bernyanyi() melalui referensi tersebut, maka method yang akan dieksekusi adalah method bernyanyi() yang terdapat pada kelas PenyanyiJazz. Ini artinya, method yang akan dipanggil oleh p akan tergantung dari objek yang sedang ditunjuk atau diacu oleh p. Begitu pula apabila p sedang menunjuk ke objek dari kelas PenyanyiPop maupun PenyanyiDangdut, method yang dipanggil pun akan disesuaikan dengan objek yang ada. Hal semacam inilah yang dinamakan polimorfisme. Artinya, cara yang dilakukan sama, yaitu p.bernyanyi(), akan tetapi implementasinya berbeda-beda sesuai dengan tipe objek yang sedang diacu. Penentuan objek mana yang akan diacu dilakukan pada saar run-time sehingga proses ini dikenal dengan istilah runtime polymorphism atau dynamic method dispatch (pengiriman method secara otomatis).
Anggota :
http://rakbar73.blogspot.com/ (Robbiyana Akbar)
http://muhyinhari.blogspot.com/ (Muhyin Hari Sasono)
Tidak ada komentar:
Posting Komentar