Proses override dibentuk agar Java dapat mendukung konsep polimorfisme. Sedangkan Polimorfisme itu
sendiri adalah kemampuan suatu objek untuk mengungkap banyak hal
melalui satu cara yang sama. Polimorfisme merupakan salah satu hal
esensial dalam konsep pemrograman berorientasi objek karena alasan
berikut : polimorfisme mengizinkan kelas induk untuk mendefinisikan
sebuah method general (bersifat umum) untuk semua kelas turunannya, dan selanjutnya kelas-kelas turunan dapat memperbaharui impelemtasi dari method tersebut secara lebih spesifik sesuai dengan karakteristiknya masing-masing.
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 :