Anda di halaman 1dari 16

OOP – POLYMORPHISM Materi Pertemuan 10

DEFINISI POLYMORPHISM
• Poly + morph = banyak + bentuk
• Polymorphism berarti satu objek dapat memiliki banyak bentuk
yang berbeda.
• Polymorphism adalah konsep sederhana dalam pemrograman
berorientasi objek dimana kemampuan suatu variabel referensi
objek untuk memiliki aksi yang berbeda bila method yang
sama dipanggil, dimana aksi method tergantung dari tipe
objeknya
DEFINISI POLYMORPHISM
• Polymorphism di Java:
• Kemampuan suatu refference variable untuk bertindak
Secara umum, polimorphism dimaksudkan pada kemampuan
sebuah variabel reference untuk merubah bahaviour sesuai
dengan apa yang dipunyai object.
• Memungkinkan berbagai object dari berbagai subclass
diperlakukan sebagai sebuah object super class. Super class
yang dimaksud akan melakukan tindakan sesuai dengan
object subclass tersebut.
DEFINISI POLYMORPHISM

Polimorfisme merupakan salah satu sifat dari bahasa


pemrograman berorientasikan objek (OOP) dimana
memiliki konsep yang hampir sama dengan overriding,
yaitu kita dapat membuat nama method yang sama dari
supeclass/kelas induk pada subclass/kelas anak yang
diwariskannya tetapi melakukan hal yang berbeda.
POLIMORFISME
Polimorfisme

Penulisan method yang


Overloading sama pada class yang
sama
Penulisan method yang
Overriding sama pada class yang
berbeda
OVERLOADING

▪ Biasa terjadi pada konstruktor


▪ Syarat:
▪ Nama method sama,
▪ parameternya berbeda baik dari segi tipe data yang dipakai, jumlah
parameternya, serta susunan parameternya.
OVERRIDING

▪ Bisa diterapkan pada class turunannya.


▪ Overriding method terkait pada konsep pemrograman
berorientasi object Pewarisan (inheritance).
▪ Maksudnya, method di class induk bisa diperluas di class
turunannya.
▪ Class turunannya juga bisa mengubah isi method yakni
operasi atau aksi yang dilakukan di class induk
OVERRIDING

▪ Karakteristik dari overriding method:


 Method di class induk yang bisa di-overriding yakni
semua method dengan modifier default, public,
protected.
 Method constructor di class induk tidak pernah bisa di-
overriding.
 Jenis tipe data, jumlah, dan susunan parameter di
method class induk tidak berubah.
KEYWORD OVERRIDING

extends

@Override
CONTOH OVERRIDING

Overriding
CONTOH POLIMORFISME
Terdapat parent class Person dan subclass Student dan Employee.
Berikut adalah hierarkinya..

Dalam Java, kita dapat membuat referensi yang merupakan tipe dari superclass ke
sebuah object dari subclass tersebut. Sebagai contohnya,
public static main( String[] args )
{
Person ref;
Student studentObject = new Student();
Employee employeeObject = new Employee();
ref = studentObject; //Person menunjuk kepada}
Sekarang dimisalkan kita punya method getName dalam superclass Person kita, dan kita
override method ini dalam kedua subclasses Student dan Employee,
public class Person {
public String getName(){
System.out.println(“Person Name:” + name);
return name;
}
}
public class Student extends Person {
public String getName(){
System.out.println(“Student Name:” + name);
return name;
}
}
public class Employee extends Person {
public String getName(){
System.out.println(“Employee Name:” + name);
return name;
}
Kembali ke method utama kita, ketika kita mencoba memanggil method getName dari
reference Person ref, method getName dari object Student akan dipanggil. Sekarang,
jika kita berikan ref ke object Employee, method getName dari Employee akan
dipanggil.
public static main( String[] args ) {
Person ref;
Student studentObject = new Student();
Employee employeeObject = new Employee();
ref = studentObject; //Person menunjuk kepada
// object Student
String temp = ref.getName(); //getName dari Student
//class dipanggil
System.out.println( temp );
ref = employeeObject; //Person menunjuk kepada
// object Employee
// object Employee
String temp = ref.getName(); //getName dari Employee
//class dipanggil
System.out.println( temp ); }

Kemampuan dari reference untuk mengubah sifat menurut object apa yang dijadikan
acuan dinamakan polimorfisme. Polimorfisme menyediakan multiobject dari subclasses
yang berbeda untuk diperlakukan sebagai object dari superclass tunggal, secara
otomatis menunjuk method yang tepat untuk
CLASS FINAL
Dalam Java, juga memungkinkan untuk mendeklarasikan class-class
yang tidak boleh memiliki subclass. Class ini dinamakan class final.
Untuk mendeklarasikan class untuk menjadi final kita hanya
menambahkan kata kunci final dalam deklarasi class. Sebagai
contoh, jika kita ingin sebuah class misal Person untuk dideklarasikan
final, kita tulis,
public final class Person
{
//area kode
}
Beberapa class dalam Java API dideklarasikan secara final untuk
memastikan sifatnya tidak dapat di-override. Contoh-contoh dari
class ini adalah Integer, Double, dan String.
METHOD FINAL
Memungkinkan dalam Java membuat method yang tidak dapat di-
override. Method ini dapat kita panggil method final. Untuk
mendeklarasikan method untuk menjadi final, kita tambahkan kata
kunci final ke dalam deklarasi method. Contohnya, jika kita ingin
method getName dalam class Person untuk dideklarasikan final, kita
tulis,
public final String getName(){
return name;
}
Method static juga secara otomatis final. Ini artinya Anda tidak
dapat membuatnya override.

Anda mungkin juga menyukai