Polymorphism
•
Fitur
Powerfull di Jawa selain warisan dan enkapsulasi (prinsip OOP).
•
Obyek yang
memiliki banyak bentuk.
•
1 fungsi
dengan banyak implementasi.
•
Efisien dan
kurang redundansi
•
Menggunakan
Metode Abstrak dan Abstrak Kelas
Trivial
VS Pure Polymorphism
•
Trivial Polymorphism: Overloading
•
Menangani saat kompilasi.
•
Static Binding.
•
Pure Polymorphism: Overriding
•
Menangani saat runtime.
•
Dinamis Binding.
•
Jenis Instance menentukan metode yang
akan digunakan
Type
Polymorphism
•
Ada 2 jenis Polymorphism berdasarkan
waktu :
1.
Static (Compile Time), dapat melalui:
§ Generic
§ Overload
2.
Dynamic ( Run Time ) , dapat melalui :
§ Class
•
Inheritance
•
Abstract
§ Interface
Dynamic
Binding
•
Implementasi yang digunakan akan
ditentukan secara dinamis oleh Java Virtual Machine pada saat runtime.
•
Keuntungan:
–
Memungkinkan kelas baru yang akan dimuat
tanpa mengkompilasi ulang.
–
Pengembang tidak perlu membuat dan
pengguna tidak harus menginstalnya.
–
Versi utma perangkat lunak.
–
Fitur baru dapat ditambahkan transparan
jika diperlukan.
Contoh
Polymorphism
ComputeArea () fungsi adalah metode polimorfisme
dari kelas Shape yang diganti di kelas Rectangle dan Circle.
Casting
Object
•
Konversi objek dari kelas ke kelas jenis
lain dalam hirarki inheritance.
•
Ada 2 jenis Casting Obyek:
–
Implicit Casting
Object o = new Student(); //Implicit casting
m(o) , where function m is m( new Student )
Object o = new Student(); //Implicit casting
m(o) , where function m is m( new Student )
–
Explicit Casting
Student b = (Student) o; // Explisit casting
Student b = (Student) o; // Explisit casting
Error if :
Student b = o; ß Error Casting
karena obyek Mahasiswa adalah turunan dari kelas Object, tapi kelas Object bukan merupakan contoh dari class Student.
Student b = o; ß Error Casting
karena obyek Mahasiswa adalah turunan dari kelas Object, tapi kelas Object bukan merupakan contoh dari class Student.
•
Untuk memeriksa apakah sebuah objek
adalah obyek kelas dibandingkan, kita dapat menggunakan "instanceof".
Tidak ada komentar:
Posting Komentar