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
© Copyright 2024 Paperzz