Penyusun:
Annisa Nurul Puteri
MODUL
•••
POLYMORPHISM 7
Penulisan method
Overloading yang sama pada
class yang sama.
Polymorphism
Penulisan method
yangs sama pada
Overriding class yang
berbeda.
Gambar 7. 1 Polymorphism
1
MODUL
•••
A. Overriding
Overriding merupakan jenis polymorphism yang bisa diterapkan
pada class turunan, overriding method terkait pada konsep inheritance
dalam pemrograman berorientasi objek, di mana method di class induk
dapat diperluas di class turunannya, dan class turunan dapat mengubah
isi method pada super class.
Karakteristik Overriding:
• Method dari super class yang bisa di-override yaitu semua method
dengan akses modifier default, public, dan protected.
• Method constructor di super class tidak bisa di-override.
• Jenis tipe data dan susunan parameter di method superclass tidak
berubah.
Double
N
Float a
W r
i Long r
d o
e Int w
n i
i Short n
n g
g Byte
2
MODUL
•••
1. Widening
Pada tipe Widening data target harus lebih besar dari tipe data sumber.
Seperti yang sudah dijelaskan, tipe data Short memiliki jangkauan dari
range -32768 sampai dengan 32767, artinya ketika akan meng-assign
nilai dengan jangkauan di atas 100000, maka setidaknya harus
menaikkan tipe data tersebut menjadi int, begitu pula selanjutnya.
Berikut adalah contoh widening casting:
2. Narrowing
Kebalikan dari tipe widening, pada narrowing tipe data target harus
lebih kecil dari tipe data sumber. Misalnya dalam tipe data int memiliki
jangkauan diantara 10000 sampai 30000, maka bisa menggunakan
short, begitu pula untuk tipe data lain yang berada di bawahnya.
Berikut adalah contoh widen casting:
3
MODUL
•••
D. Upcasting
Pada upcasting, child object di-casted terhadap parent class
menggunakan reference variabel, pada Downcasting, objek di-casted
kembali terhadap child class menggunakan reference variabel.
Ilustrasi upcasting:
Parent p;
P = new Parent ( );
- Number = 10
- toString() = “parent”
- toString( )
ChildA cA;
cA = new ChildA( );
- Number = 20
- toString():“child a”
- toString()
- methodA():”method a”
- methodA()
- Number = 10
- toString( )
- toString():“child a”
- methodA():”method a”
- Number = 20
- toString()
- methodA()
4
MODUL
•••
E. Downcasting
Downcasting merupakan upaya pengembalian suatu objek yang telas di-
upcasted kepada bentuk original objek class tersebut. Downcasting
merupakan explisit casting.
5
MODUL
•••
Praktikum 7a
2. Pada package P_VMI, buatlah empat class baru dengan nama Parent,
ChildA, ChildB, dan GrandChildA.
6
MODUL
•••
System.out.println(p.toString());
System.out.println(cA.toString());
System.out.println(cB.toString());
System.out.println(gC.toString());
}
}
8. Klik button Run atau tekan F6 pada main class, perhatikan output yang
diperoleh dan lakukan problem solving jika terjadi error!
7
MODUL
•••
Praktikum 7b
2. Pada package P_Upcasting, buatlah empat class baru dengan nama Parent,
ChildA, ChildB, dan GrandChildA.
8
MODUL
•••
System.out.println(p.toString());
System.out.println(cA.toString());
System.out.println(cB.toString());
System.out.println(gC.toString());
}
}
8. Klik button Run atau tekan F6 pada main class, perhatikan output yang
diperoleh dan lakukan problem solving jika terjadi error!
9
MODUL
•••
Praktikum 7c
10
MODUL
•••
8. Klik button Run atau tekan F6 pada main class, perhatikan output yang
diperoleh dan lakukan problem solving jika terjadi error!
11
MODUL
•••
12