Bagaimana konsep polymorphism pada pemrograman Java?
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Katakanlah ada interface yang diberi nama Hewan. Interface ini hanya punya 1 method: bicara(). Kemudian saya tulis implementasi dari interface Hewan dalam kelas yang saya beri nama Manusia. Karena kelas ini tidak dideklarasikan sebagai kelas abstrak, saya harus tulis implementasi dari method bicara().
Kemudian saya tulis implementasi berikutnya dalam kelas yang saya beri nama Anjing, dalam kelas yang saya beri nama Kucing, kemudian kelas Manusia saya extend ke dalam kelas baru yg saya beri nama BritneySpears, dan saya override method bicara().
Kemudian saya buat sebuah array yang menampung implementasi dari interface Hewan. Object dari kelas apapun boleh saya masukkan ke array ini, yang penting object tersebut berasal dari kelas yang mengimplementasikan interface Hewan.
Dalam program di atas saya create 4 object, kemudian saya masukkan ke dalam array.
Di baris berikutnya saya panggil method bicara() dari masing² Hewan di dalam array. Ingat, di point ini kita tahunya array berisi Hewan. Tidak peduli Hewan apa.
Kalau program dijalankan, hasilnya:
Walaupun kita hanya memanggil
hewans[0].bicara()
,hewans[1].bicara()
,hewans[2].bicara()
, danhewans[3].bicara()
, hasil pemanggilan masing-masing method sesuai dengan object yg dimasukkan ke dalam array, tanpa kita harus tahu kelas dari object yg masuk ke dalam array.Polymorpishm memiliki arti banyak bentuk seperti suara. Misalkan seperti suara kendaraan, suara hewan, bahkan suara yang tidak bisa didengar tanpa alat bantu, mereka semua adalah bentuk—bentuk dari sebuah hal yang disebut suara.
Dalam pemrograman Java, polymorpishm bisa menggunakan method Overloading dan Overriding. Overloading ini diibaratkan seperti alat tulis, semua alat tulis mempunyai fungsi yang sama, yaitu untuk menulis, akan tetapi tentu memiliki bentuk yang berbeda-beda.
Nah sebagai orang yang memiliki kesiapan yang baik, tentu kita harus mempersiapkan alat tulis yang berbeda-beda bukan? Sama seperti sebuah program yang memiliki berbagai method yang memiliki fungsi yang sama dengan bentuk yang berbeda-beda.
Overloading diibaratkan seperti alat tulis, Overriding ini bisa diibaratkan seperti kertas. Kita anggap semua kertas memiliki bahan baku yang sama, yaitu kayu, dalam hal ini ini kita perlu menyiapkan bahan baku berupa kayu untuk setiap kertas yang ingin kita buat.
Nah disinilah perbedaan Overloading dan Overriding, kalau Overloading menggunakan banyak “bentuk” untuk sebuah fungsi yang sama, Overriding justru menggunakan satu “bentuk” untuk menghasilkan sesuatu yang berbeda-beda, dan disinilah biasanya inheritance digunakan.