Lembar Kerja Siswa Kegiatan Belajar 17 : Polimorphisme

PEMROGRAMAN BERORIENTASI OBJEK 183 | P a g e

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 mnew Mahasiswa ; menugaskan objek new Mahasiswa kepada suatu parameter bertipe Object. Statement tersebut ekuivalen dengan object o = new Mahasiswa; Casting implisit mo; 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 PEMROGRAMAN BERORIENTASI OBJEK 184 | P a g e memberitahu kompiler bahwa o merupakan suatu objek Mahasiswa , gunakan casting ekspilit. Sintaks yang digunakan sama seperti yang digunakan untuk meng-casting tipe primitif, tipe objek target diapit oleh sepasang kurung dan ditempatkan sebelum objek yang akan dicast: Mahasiswa b = Mahasiswa o; Casting eksplisit Adalah hal yang selalu memungkinkan untuk melakukan casting terhadap instans dari suatu subkelas menjadi suatu variabel superkelas yang dikenal dengan upcasting, karena instans subkelas selalu merupakan instans superkelas. Ketika melakukan casting terhadap instans dari suatu superkelas menjadi suatu variabel subkelasnya yang dikenal dengan downcasting, casting eksplisit harus digunakan untuk mengaskan tujuan anda kepada kompiler. Agar casting berhasil dilakukan , Anda perlu memastikan bahwa objek yang akan di-cast merupakan suatu instans subkelas. Jika objek superkelas bukan merupakan suatu instans subkelas., error ClassCastException akan terjadi. Sebagai contoh, jika suatu objek bukan instans dari Mahasiswa, maka objek tersebut tidak bisa di-cast menjadi suatu variabel Mahasiswa. Hal ini bisa diselesaikan dengan penggunaan operator instance of Listing Program public class DemoCasting { Main method public static void mainString[] args { Menciptakan dan menginisialisasi dua objek Object objek1 = new Lingkaran41; Object objek2 = new PersegiPanjang11, 1; Menampilkan lingkaran dan persegi-panjang tampilObjekobjek1; tampilObjekobjek2; } Metode untuk menampilkan suatu objek public static void tampilObjekObject objek{ ifobjek instanceof Lingkaran4 { System.out.printlnLuas lingkaran adalah +