PEMROGRAMAN BERORIENTASI OBJEK
182 | P a g e
g. Lembar Kerja Siswa
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 +