Anda di halaman 1dari 18

Polimorfisme

OLEH :
KRISTINA ANNATASIA BR SITEPU

STMIK KAPUTAMA BINJAI


JL. VETERAN NO. 4A – 9A BINJAI, SUMATERA UTARA
Polimorfisme

 Polimorfisme : Poly artinya banyak, morfisme artinya bentuk.


 Polimorfisme : kemampuan untuk menghandle banyak bentuk.
 Polimorfisme : kemampuan untuk memproses objek-objek yang
berbeda jenis dan class melalui satu antarmuka yang seragam.
 Polimorfisme adalah suatu kejadian ketika objek dapat mengungkap
banyak hal melalui suatu cara yang sama, suatu object dapat memiliki
berbagai bentuk, sebagai object dari class sendiri atau object dari
superclassnya.
 Polimorfisme dalam OOP adalah sebuah prinsip di mana class dapat
memiliki banyak “bentuk” method yang berbeda-beda meskipun
namanya sama.
 “Bentuk” di sini dapat kita artikan : isinya berbeda, parameternya
berbeda, dan tipe datanya berbeda.
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.


 Static polimorfisme atau trivial merupakan function overloading
(penggunaan kembali nama fungi yang sama tapi dengan argumen
yang berbeda) / ( Penggunaan satu nama untuk beberapa method
yang berbeda (beda parameter)).
 Syarat Overload yaitu nama return type, argument, dan parameter
harus sama. Jika tidak sama maka bukan dianggap sebagai overload.
Pada overload method, tidak diharuskan menggunakan inheritance,
karena dapat digunakan secara public asalkan parameter dan
argumennya sesuai.
 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 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 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 instance of

 Java menyediakan operator binary instance of yang akan


mengembalikan nilai benar jika objek memang instance/anggota dari
class tertentu.
 An Object instance of a Class
 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
Method getArea() pada Shape

 Lihat contoh program  Apa yang terjadi jika:


yang disediakan. 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());
}
}
SEKIAN DAN TERIMAKASIH

SUMBER : JEDI
JENI : PENGENALAN PEMROGRAMAN I

Anda mungkin juga menyukai