Polymorphism di OOP
Polymorphism adalah suatu object dapat memiliki berbagai bentuk, sebagai object dari class sendiri atau object dari superclassnya.
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.
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 );
}
Overloading
Overloading : penggunaan satu nama untuk beberapa method yang berbeda (beda parameter)
hasil dari script diatas adalah dibawah ini:
Overriding
Overriding : terjadi ketika deklarasi method subclass dengan nama dan parameter yang sama dengan method dari superclassnya.
hasil dari script diatas adalah dibawah ini:
Komentar
Posting Komentar