Page 198 - PEMROGRAMAN BERORIENTASI OBJEK 11 GASAL
P. 198
PEMROGRAMAN BERORIENTASI OBJEK
16. Kegiatan Belajar 18 : Polimorphisme (Casting Objek dan InstanceOf)
a. Tujuan Pembelajaran
Setelah mengikuti kegiatan belajar 16 siswa diharapkan dapat :
1) Memahami konsep polimorfisme
2) Menyajikan overloading dan overriding dalam class
b. Uraian Materi
Anda telah menggunakan operator casting untuk mengubah variabel-variabel
suatu tipe primitif menjadi tipe primitif yang lain. Casting dapat pula digunakan
untuk mengubah objek dengan suatu tipe kelas menjadi objek degan tipe kelas
lain, di dalam suatu hirarki pewarisan. Pada bagian sebelumnya , statemen
m(new) Mahasiswa ( ) ) ;
menugaskan objek new Mahasiswa() kepada suatu parameter bertipe Object.
Statement tersebut ekuivalen dengan
object o = new Mahasiswa(); // Casting implisit
m(o);
Statement Object o = new Mahasiswa(), dikenal sebagai casting implisit,
merupakan hal yang sah karena suatu instans Mahasiswa secara otomatis
adalah suatu instans Object.
Seandainya anda ingin menugaskan referensi objek o kepada suatu variabel
bertipe Mahasiswa menggunakan statemen berikut ini:
Mahasiswa b = o;
Pada kasus ini, error kompilasi terjadi. Mengapa statemen Object o = new
Mahasiswa() dapat dilakukan sementara Mahasiswa b = o tidak bisa
dilakukan ? Alasanya adalah bahwa suatu objek Mahasiswa selalu merupakan
suatu instans Object, tetapi suatu instans Object belum tentu merupakan suatu
instans Mahasiswa. Meskipun anda dapat melihat bahwa o adalah suatu objek
Mahasiswa, kompiler tidak cukup pintar untuk mengetahuinya. Untuk
183 | Pa g e