Polymorphism adalah kemampuan dua buah objek yang berada untuk merespon pesan perintah yang sama dalam suatu cara yang unik. misalnya saya mempunyai dua binatang peliharaan, kucing dengan tikus. kucing saya perintah untuk merespon bersuara "mengeong" dan tikus saya perintah untuk merespon dengan bunyi "cit-cit" dengan lisan. melalui polymorphism ini saya akan tau bahwa kucing dan tikus akan merespon dengan cara mengeong atau cit-cit.
Polymorphism ini dibagi menjadi dua yaitu Overloading dan Overiding.
Overloading sendiri adalah pemakaian beberapa methods atau properties dengan nama yang sama, tetapi memiliki daftar parameter yang berbeda. perbedaan yang saya maksud adalah beda jumplah parameter, beda tipe data, atau keduanya "jumlah parameter dan tipe data". Method atau properties yang hanya berbeda "return value" tidak bisa dikatakan sebagai overloading, dan jika dalam satu kelas, keyword ini bersifat optional yang artinya kita tidak harus menambah keyword overloads ketika mendefinisikan beberapa method ataupun properties yang menerapkan konsep overloading. apabila tetap ingin memakainya, maka keyword overloads harus di gunakan di semua method ataupun properties. apabila beda kelas, keyword overloads ini harus digunakan.
Overiding adalah kemampuan kelas turunan untuk memodifikasi methods atau properties dari kelas induk. dengan overiding kita bisa membuat implementasi baru pada method atau properties di kelas turunan yang berbeda dengan method atau properties yang ada pada kelas induk.
Perbedaan overloading dan overiding
1. pada overloading kita dapat menambahkan parameter.
2. pada overiding kita didak boleh mengubah parameter yang ada dikelas induk.
Beberapa keyword yang dapat digunakan di overiding
- Overridable
Keyword ini digunakan pada methods atau properties di class induk yang menandakan bahwa methods atau properties tadi bisa di-override pada class turunan.
- Overrides
Keyword ini digunakan pada class turunan yang menandakan bahwa methods atau properties tadi meng-override methods atau properties yang ada di class induk.
- Not Overridable
Keyword ini digunakan pada methods atau properties di suatu class yang menandakan bahwa methods atau properties tadi tidak bisa di-override pada class turunan.
- Must Overrides
Keyword ini digunakan untuk mendeklarasikan abstract methods atau abstract properties. Hanya ada deklarasi header di sini, tanpa ada pendefinisian implementasi. Class yang mempunyai abstract methods atau abstract properties harus didefinisikan juga sebagai abstract class dengan keyword MustInherit.
Contoh Program
C#:
C#:
No comments:
Post a Comment