Pages

Polymorphism

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#:

Inheritance


Inheritance 

adalah salah satu fitur OOP (object-oriented programming) yang sangat penting, Inheritance adalah penurunan sifat dari suatu kelas ke kelas yang lain. tidak semua sifat bisa di turunkan ke kelas turunan tetapi hanya "field" dan method yang punya modifer "publik" dan "protected" yang bisa diturunkan.


Manfaatnya:

1. untuk menciptakan sebuah kelas dari kelas yang sudah ada.
2. ketika sebuah kelas diturunkan dari kelas yang sudah ada maka kelas tersebut mewarisi semua "method" dan "field" dari kelas sebelumnya.
3. kelas turunan juga mewarisi bentuk dari kelas sebelumnya. artinya objek dari kelas sekarang dapat dikenali sebagai objek dari kelas sebelumnya.

Pengertiannya:

1. penurunan bersifat menyeluruh
2. semua data dan method milik kelas pertama diturunkan ke kelas yang baru.
3. kelas yang menurunkan = super kelas atau induknya.
4. kelas yang turunan = bagian kelas atau anak dari kelas sebelumnya.
5. jika kelas induk merupakan turunan dari kelas lain, maka data dan method yang berasal dari kelas tersebut akan ikut diturunkan pula kepada kelas berikutnya.

Contoh program pada CSharp/C#:


C#/CSHARP:

C++: