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; } } }