Lembar Kerja Siswa Kegiatan Belajar 17 : Polimorphisme
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 +
PEMROGRAMAN BERORIENTASI OBJEK
185 | P a g e
Metode tampilObjek Object objek merupakan contoh pemrograman generik,
yang dapat dipanggil degan melewatkan sembarang instans dari Object.
Program menggunakan casting implisit untuk menugaskan suatu objek
Lingkaran kepada objek1 dan suatu objek PersegiPanjang kepada objek2
baris 5-6, kemudian memanggil metode tampilObjek untuk menampilkan
informasi pada kedua objek tersebut baris 9-10. Di dalam metode
tampilObjek baris 14-25, casting eksplisit digunakan untuk
meng cast objek Lingkaran jika objek merupakan suatu instans lingkaran, dan
metode dapatLuas dan dapatDiameter digunakan untuk menampilkan luas
dan diameter suatu lingkaran. Casting bisa dilakukan hanya jika objek sumber merupakan suatu instans dari
kelas target. Program menggunakan operator instanceof untuk memastikan
bahwa objek sumber merupakan suatu instans dari kelas target sebelum melakukan suatu casting baris 15.
Casting eksplisit menjadi lingkaran baris 17,19 dan menjadi PersegiPanjang
baris 23 perlu dilakukan karena metode
dapatLuas dan dapatDiameter tidak
tersedia di dalam kelas Object.
Lingkaran4objek.dapatLuas; System.out.printlnDiameter lingkaran adalah +
Lingkaran4objek.dapatDiameter; }
else ifobjek instanceof PersegiPanjang1 { System.out.printlnLuas persegi-panjang adalah +
PersegiPanjang1objek.dapatLuas; }
} }