protected access

Download Report

Transcript protected access

Polymorphism
Viska Mutiawani, M.Sc
Konsep Penting
Makna polymorphism
 Static binding
 Dynamic binding

Makna Polymorphism
Polymorphism : polimorfisme
 Polymorphism = poly (banyak) + morphos
(bentuk) : banyak bentuk
 Polymorphism : kemampuan untuk
menghandle banyak bentuk.
 Polymorphism : kemampuan untuk
memproses objek-objek yang berbeda
jenis dan class melalui satu antarmuka
yang seragam.

Tipe Polimorfisme

Java memiliki 2 tipe polimorfisme:
◦ Polimorfisme kompilasi (static binding)
◦ Polimorfisme runtime (dynamic binding)
Polimorfisme statis, contoh pada method
overloading.
 Polimorfisme dinamis, contoh pada
method overriding.

Contoh sederhana polimorfisme


Semua objek yang memenuhi lebih dari satu relasi is-a
maka objek tersebut polymorphic.
Semua objek di Java: polymorphic
Substitusi




Subkelas mewarisi semua
atribut dan perilaku
superkelas.
Maknanya subkelas dapat
melakukan semua hal
yang dilakukan oleh
superkelas.
Akibatnya, kita dapat
mensubstitusi objek
superkelas dengan objek
subkelasnya.
Inilah yang disebut
substitusi.
Dengan substitusi:
Circle c1 = new
Cylinder(5.0);

Polimorfisme Statis
Contoh pada method overloading.
 Sewaktu kompilasi, Java tahu method
mana yang akan dipanggil

Contoh Polimorfisme Statis
Polimorfisme Dinamis

Anggaplah subclass meng-override
method tertentu pada superclass. Andai
kita cipta objek dari subclass dan
memasukkannya (via =) dalam superclass.
Walau objek subclass telah dimasukkan
pada superclass, sewaktu objek tersebut
memanggil method yang dioverride, ia
tetap memanggil method yang versi
subclassnya, bukan versi superclass.
Contoh Polimorfisme Dinamis
Class Vehicle memiliki method move().
 Class MotorBike meng-override method
move().
 Java akan menunggu saat runtime untuk
menentukan method move() yang mana akan
dipanggil.

Upcasting
Upcasting : substitusi objek subclass pada
superclassnya.
 Upcasting selalu aman, karena compiler
Java pasti akan mengecek upcasting yang
sah dan akan mengeluarkan error
“incompatible types” jika tidak sah.

Downcasting
Downcasting : substitusi objek subclass
yang direference ke superclass,
dikembalikan ke objek subclassnya.
 Memerlukan casting operator.

Downcasting
Downcasting tidak selalu aman.
 Downcasting dapat melempar
ClassCastException jika objek yang
didowncast bukan bagian dari subclass
yang benar.
 A subclass object can be substituted for
its superclass, but the reverse is not true.

Operator instanceof



Java menyediakan
operator binary
instanceof yang akan
mengembalikan nilai
benar jika objek memang
instance/anggota dari
class tertentu.
anObject instanceof
aClass
Objek dari subclass juga
merupakan objek dari
superclass.
Kegunaan Polimorfisme
Polimorfisme sangat penting pada PBO,
yang berguna untuk memisahkan antara
antarmuka dan implementasi.
 Sehingga programmer dapat lebih fokus
sewaktu mendesain sistem yang
kompleks.

Protected access
Private access in the superclass may be too
restrictive for a subclass.
 The closer inheritance relationship is supported
by protected access.
 Protected access is more restricted than public
access.
 We still recommend keeping fields private.

◦ Define protected accessors and mutators.
Access levels
Contoh Polimorfisme

Lihat contoh program yang disediakan.
Method getArea() pada Shape
Apa yang terjadi jika:
public class TestShape {
public static void main(String[] args)
{ // Constructing a Shape instance
poses problem!
Shape s3 = new Shape("green");
System.out.println(s3);
System.out.println("Area is " +
s3.getArea());
} }
