1. Indikator Topik Pembahasan.
- Mampu memahami konsep Inclusion polimorfisme.
- Mengenal metode override.
- Mengenal metode virtual.
- Menerapkan metode override.
2.Peralatan yang digunakan.
- Visual Studio 2017 Community.
3. Materi Pembelajaran.
Bagian dari polimorfisme adalah polimorfisme dinamis. Polimorfisme ini dikenal
dengan nama Inclusion Polymorphism atau dikenal juga dengan nama Subtyping.
Polimorfisme dinamis tidak terjadi ketika proses kompilasi ("Compile-Time").
Polimorfisme dinamis terjadi disaat "Run-Time", hal ini membuat polimorfisme dinamis
dapat berjalan tidak hanya di bahasa kompilasi, melainkan juga di bahasa interpreter tidak
seperti polimorfisme statis.
Pewarisan dapat memberlakukan proses upcasting dan downcasting. Perhatikan
potongan program berikut yang akan menunjukan proses upcasting dan downcasting.
Upcasting adalah proses instansi dari class turunan dengan menjadikan base class
sebagai objeknya. Downcasting sebaliknya, proses instansi dari base class dengan
menjadikan class turunan sebagai objeknya.
Ketika class diwariskan ke class yang lain, maka semua metode yang terdapat pada
base class dapat digunakan langsung oleh semua class turunannya. Metode yang
diturunkan mempunyai fungsionalitas yang disesuaikan oleh base class, sehingga class
turunan harus mengikuti aturan fungsionalitas yang berlaku. Pada kenyataannya
terkadang class turunan dapat memiliki fungsionalitas yang bervariasi bahkan berbeda
untuk sebuah metode yang sama. Polimorfisme dinamis dibutuhkan untuk mempermudah
ketika proses upcasting atau downcasting digunakan.
Inclusion Polymorphism
Polimorfisme jenis ini berlaku dimetode dengan memiliki nama, tipe kembalian
serta jumlah, urutan, dan tipe parameter yang harus identik sama. Hanya isi konten dari
tubuh metode yang berbeda. Untuk dapat melakukan polimorfisme jenis ini diperlukan
dua class atau lebih dimana class tersebut terikat akan hubungan hirarki pewarisan.
Metode Override
Polimorfisme ini menggunakan metode yang dikenal "Override". Inti dari metode
override adalah menimpa metode asli yang ada pada base class dengan metode yang
didefinisikan ulang oleh class turunan.
Metode yang menimpa (override) harus mengikuti ketentuan yang berlaku di
polimorfisme inlclusion, yaitu memiliki nama, tipe kembalian serta jumlah, urutan, dan
tipe parameter yang harus identik sama. Metode dari base class yang dapat ditimpa
haruslah metode yang dibuat virtual.
Metode Virtual
Kata kunci “virtual” digunakan untuk memodifikasi sebuah metode, properti,
Indekser, atau Event menjadi virtual. Metode yang dirubah menjadi virtual akan
digunakan untuk mengaktifkan pilihan bahwa metode tersebut boleh didefinisikan
kembali oleh setiap class-class yang diturunkan. Metode virtual memiliki perbedaan
dengan metode biasa. Pada proses "run-time", ketika metode virtual dipanggil, maka
metode tersebut tidak akan langsung dijalankan melainkan akan dilakukan pengecekan
terlebih dahulu apakah metode tersebut ditimpa dengan metode lain atau tidak. Berikut
contoh pembuatan virtual class. Perhatikan contoh dibawah ini.
Selama terjadinya hubungan pewarisan Metode virtual mengijinkan class-class
turunan untuk menimpa isi konten metode tersebut dengan isi konten lain yang berbeda.
Metode virtual hanya dimiliki oleh class yang punya status sebagai base class. Virtual
tidak dapat diterapkan pada metode yang statis, abstrak, modifikasi private, atau metode
override.
Dalam bahasa Csharp metode yang dibuat secara default adalah non-virtual.
Metode non-virtual tidak dapat ditimpa (override), namun metode non-virtual masih
dapat dibuat bayangannya dengan menggunakan kata kunci new (shadow method)
berkebalikan dengan bahasa JAVA dimana metodenya secara default adalah virtual.
Perbedaan Metode Override dan Metode Shadowing.
Tampak sekilas metode Override (dengan kata kunci "override") sama seperti
metode Shadowing (dengan kata kunci "new"). Akan tetapi perlu diingat metode override
merupakan polimorfisme dimana dua metode atau lebih tetapi dihitung satu oleh mesin,
sedangkan metode bayangan (Shadowing) bukanlah sebuah bentuk polimorfisme.
Perhatikan contoh berikut.
Dari pemaparan contoh diatas, perbedaan antara metode override dengan metode
bayangan dapat terlihat jelas ketika proses upcasting dilakukan. Metode bayangan akan
tergantikan kembali oleh metode aslinya ketika upcasting dilakukan, tetapi metode
override tetap mempertahankan metode turunannya meskipun yang diakses adalah
virtualnya.
Dengan kata lain Metode bayangan membuat metode baru yang kemudian
menyembunyikan metode lama dari kompilator. Metode Override (metode baru)
melakukan ekspansi dari metode virtual (metode lama). Namun tetap mempertahankan
asumsi bahwa metode tersebut tetap terlihat satu.
Comments
Post a Comment