Polymorphism Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 5 Tahun : 2008 Versi : 1/0
Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: Menerapkan sebuah abstract class dengan fungsi virtual ( polymorphism ) Bina Nusantara
Trivial VS Pure Polymorphism Tipe Polymorphism. Dynamic Binding Outline Materi Apa itu Polymorphism ? Trivial VS Pure Polymorphism Tipe Polymorphism. Dynamic Binding Contoh Polymorphism. Casting Object Bina Nusantara
Objek yang memiliki banyak bentuk. 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
Berdasarkan waktunya ada 2 : Tipe Polymorphism Berdasarkan waktunya ada 2 : Static ( Compile Time ), dapat melalui : Generic Overload Dynamic ( Run Time ) , dapat melalui : Class Inheritance Abstract Interface Bina Nusantara
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
Ada 2 jenis 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_object-oriented_programming Bina Nusantara