Kemampuan sebuah variabel
reference untuk merubah behavior sesuai dengan apa yang dipunyai object.
polymorphism membuat objek-objek
yang berasal dari subclass yang berbeda, diperlakukan sebagai objek-objek dari
satu superclass. Hal ini terjadi ketika memilih method yang sesuai untuk
diimplementasikan ke objek tertentu berdasarkan pada subclass yang memiliki
method bersangkutan.
Untuk
menjelaskan polymorphism, mari kita bahas sebuah contoh.
◦
Pada
contoh sebelumnya, kita diberikan parent class yaitu Person dan subclassnya
adalah Student, sekarang kita tambahkan subclass lainnya dari Person yaitu
Employee
Dalam
Java, kita dapat membuat referensi dari suatu superclass ke object dari
subclassnya. Sebagai contoh,
public static main( String[] args ) {
Person ref;
Student studentObject = new
Student();
Employee employeeObject = new
Employee();
ref = studentObject; //titik
referensi Person kepada // sebuah object Student
}
misalnya,
kita memiliki sebuah method getName dalam superclass Person. Dan kita
meng-override method ini di kedua subclass yaitu Student dan Employee
public class Student {
public String getName(){
System.out.println(“Student
Name:” + name);
return name;
}
}
public class Employee {
public String getName(){
System.out.println(“Employee
Name:” + name);
return name;
}
}
◦
Kembali
ke method utama kita, ketika kita mencoba memanggil method getName dari
referensi Person ref, method getName dari object Student akan dipanggil.
◦
Sekarang,
jika kita memberi ref kepada object Employee, maka method getName juga akan
dipanggil
public static main( String[]
args ) {
Person ref;
Student studentObject = new Student();
Employee employeeObject = new Employee();
ref = studentObject; //titik referensi Person kepada object
Student
//getName dari class Student dipanggil
String temp=ref.getName();
System.out.println( temp );
ref = employeeObject; //titik referensi Person kepada object Employee
//getName dari class Employee dipanggil
String temp = ref.getName();
System.out.println( temp );
}
◦
Contoh
lain yang menggambarkan polymorphism adalah ketika kita mencoba untuk passing
reference kepada method
◦
jika
kita memiliki sebuah method static printInformation yang menerima
referensi Person sebagai parameter
public static printInformation( Person p ){
. . . .
}
Sebenarnya
kita dapat passing reference dari Employee dan Student kepada method printInformation
selama kedua class tersebut merupakan subclass dari Person
public static main( String[] args )
{
Student studentObject = new Student();
Employee employeeObject = new Employee();
printInformation(
studentObject );
printInformation(
employeeObject );
}
2 komentar:
"Kemampuan sebuah variabel reference untuk merubah behavior sesuai dengan apa yang dipunyai object."
Wrong !! polymorphism lebih berkaitan kepada function/method daripada ke object. Baca Paper strachey atau Cardelli
http://lucacardelli.name/Papers/OnUnderstanding.A4.pdf
Yang cukup menarik, polymorphism yang anda jelaskan di atas, yang dikenal sebagai inclusion polymorphism, justru tidak dikenal dalam paper asli strachey, dan baru ditambahkan dalam paper strachey (di link di atas). Mudah - mudahan salah pengertian tentang polymorphism selama ini bisa berhenti disini.
http://lucacardelli.name/Papers/OnUnderstanding.A4.pdf
Posting Komentar