download

Polymorphism
Matakuliah
Pertemuan
Tahun
Versi
: T0984 / Algoritma dan Metode Object Oriented Programming II
:5
: 2008
: 1/0
Learning Outcomes
Pada akhir pertemuan ini, diharapkan
mahasiswa akan mampu:
– Menerapkan sebuah abstract class
dengan fungsi virtual
( polymorphism )
Bina Nusantara
Outline Materi
•
•
•
•
•
•
Apa itu Polymorphism ?
Trivial VS Pure Polymorphism
Tipe Polymorphism.
Dynamic Binding
Contoh Polymorphism.
Casting Object
Bina Nusantara
Apa itu Polymorphism?
• Powerful feature di Java selain inheritance
dan encapsulation (prinsip OOP).
• Objek yang memiliki banyak bentuk.
• 1 fungsi dengan banyak implementasi.
• Efisien dan mengurangi redudansi
• Mengunakan Method Abstract dan juga
menggunakan Abstract Class
Bina Nusantara
Trivial VS Pure Polymorphism
• Trivial Polymorphism : Overloading
• Ditangani pada saat kompilasi.
• Static Binding.
• Pure Polymorphism : Overriding
• Ditangani pada saat runtime .
• Dynamic Binding.
• Instance type menentukan method mana yang
akan dipakai.
Bina Nusantara
Tipe Polymorphism
•
Berdasarkan waktunya ada 2 :
1. Static ( Compile Time ), dapat melalui :


Generic
Overload
2. Dynamic ( Run Time ) , dapat melalui :


Bina Nusantara
Class
• Inheritance
• Abstract
Interface
Dynamic Binding
• Dimana implementasi yang digunakan
akan ditetapkan secara dinamik oleh Java
Virtual Machine pada saat runtime.
• Keuntungannya :
– Memperbolehkan class baru untuk di load tanpa di kompilasi
kembali.
– Developer tidak perlu untuk membuatnya dan user tidak perlu
menginstallnya.
– Versi software yang utama.
– Feature baru dapat ditambahkan secara transparant jika
dibutuhkan.
Bina Nusantara
Contoh Polymorphism
Fungsi computeArea() merupakan method
polymorphism dari kelas Shape yang dioverride di
kelas Rectangle dan Circle .
Bina Nusantara
Casting Object
• Mengkonvert suatu objek dari suatu kelas
ke tipe kelas yang lain dalam satu hirarki
inheritance.
• Ada 2 jenis Casting Object :
– Implicit Casting
Object o = new Student(); //Implicit casting
m(o) , dimana fungsi m adalah m( new Student )
– Explicit Casting
Student b = (Student) o; // Explisit casting
Error Jika :
Student b = o;  Error Casting
Karena sebuah objek Student adalah instance dari kelas Object, tetapi
kelas Object bukan instance dari kelas Student.
Bina Nusantara
Casting Object ( lanjutan … )
• Untuk mengecek apakah suatu objek
merupakan objek dari kelas yang
dibandingkan dapat menggunakan
“instanceof”.
Bina Nusantara
Referensi
• Introduction to Java Programming. 7ed. Liang. 2009.
Chapter 10, hal 369
• Java Software Solution. 5ed. Lewis & Loftus. 2007.
Chapter 9, hal 511
• Polymophism
http://www.uweb.ucsb.edu/~cdecuir/Polymorphism.html
• Inheritance and polymorphism
http://home.cogeco.ca/~ve3ll/jatutor5.htm
• Polymorphism in Object Oriented Programming
http://en.wikipedia.org/wiki/Polymorphism_in_objectoriented_programming
Bina Nusantara