Polimorfisme merupakan suatu konsep yang menyatakan sesuatu yang sama dapat memiliki berbagai bentuk dan perilaku berbeda. Istilah ini sendiri berasal dari bahasa Yunani, yang berarti “Mempunyai banyak bentuk”.
Polimorfisme merupakan kemampuan objek-objek yang berbeda kelas namun terkait dalam pewarisan untuk merespon secara berbeda terhadap suatu pesan yang sama. Polimarfisme juga dapat dikatakan kemampuan sebuah objek untuk memutuskan method mana yang akan diterapkan padanya, tergantung letak objek tersebut pada jenjang pewarisan.
Polimorfisme pada Java ada dua macam :
- Static Polymorphism (Polimorfisme statis).
- Dynamic Polymorphism (Polimorfisme dinamis).
Beda dari keduanya terletak pada cara membuat polimorfismenya. Polimorfisme statis menggunakan method overloading, sedangkan polimorfisme dinamis menggunakan method overriding.
Karena kamu baru mendengar kedua hal ini, mari kita bahas perbedaanya lebih detail:
Perbedaan Method Overloading dengan Method Overriding
Method overloading terjadi pada sebuah class yang memiliki nama method yang sama tapi memiliki parameter dan tipe data yang berbeda.
Kata kunci yang perlu kamu ingat:
- “Dalam satu class”
- “Nama method sama”
- “Tipe data dan parameter beda”
Overloading
Overloading berarti Menuliskan kembali method dengan nama yang sama pada suatu class. Tujuannya adalah memudahkan penggunaan/pemanggilan method dengan fungsionalitas yang mirip. Tujuan overloading adalah untuk memudahkan penggunaan/pemanggilan method dengan fungsionalitas yang mirip.
Aturan Pendeklarasian Method Overloading
- Nama method harus sama.
- Daftar parameter harus berbeda.
- Return type boleh sama, juga boleh berbeda
Daftar Parameter Pada Overloading
Perbedaan daftar parameter bukan hanya terjadi pada perbedaan kebanyakan parameter, tetapi juga urutan dari parameter tersebut.
misal saja duah buah parameter sebagai berikut :
- function_member(int x, string n).
- function_member(string n,int x).
Dua parameter tersebut juga dianggap berbeda daftar parameternya
Daftar parameter tidak terkait dengan penamaan variabel yang ada dalam parameter.
misal saja 2 daftar parameter berikut :
- function_member(int x).
- function_member(int y).
Dua daftar parameter diatas dianggap sama karena yang berbeda hanya penamaan variabel parameternya.
Overriding
Overriding digunakan oleh Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass. Tujuannya adalah supaya subclass memiliki tingkah laku yang lebih spesifik. Ini dilakukan dengan cara mendeklarasikan kembali method milik parent class di subclass. Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass.
Tujuan : subclass memiliki tingkah laku yang lebih spesifik. Dilakukan dengan cara mendeklarasikan kembali method milik parent class di subclass.
Polimorfisme merupakan kemampuan objek-objek yang berbeda kelas namun terkait dalam pewarisan untuk merespon secara berbeda terhadap suatu pesan yang sama. Polimarfisme juga dapat dikatakan kemampuan sebuah objek untuk memutuskan method mana yang akan diterapkan padanya, tergantung letak objek tersebut pada jenjang pewarisan.
Contoh program Bentukwajah.java
import java.*; import java.io.*; class Bentukwajah { public String respons() { return(“Perhatikan reaksi wajah saya\n”); } } class Senyum extends Bentukwajah { public String respons() { return(“Senyum karena senang\n”); } } class Tertawa extends Bentukwajah { public String respons() { return(“Tertawa karena gembira\n”); } } class Marah extends Bentukwajah { public String respons() { return(“kemarahan disebabkan bertangkar\n”); } } class Sedih extends Bentukwajah { public String respons() { return(“Sedih disebabkan cemburu\n”); } }
Program Programpolimorphis.java
public class Programpolimorphis { public static void main(String []args) { System.out.println(“\n Program Polimorphis”); System.out.println(“======================”); Bentukwajah objbentuk=new Bentukwajah(); Senyum objsenyum=new Senyum(); Tertawa objtertawa=new Tertawa(); Marah objmarah=new Marah(); Sedih objsedih=new Sedih(); Bentukwajah []Bentuk=new Bentukwajah[5]; Bentuk[0]=objbentuk; Bentuk[1]=objsenyum; Bentuk[2]=objtertawa; Bentuk[3]=objmarah; Bentuk[4]=objsedih; System.out.println(“Bentuk[0]:”+Bentuk[0].respons()); System.out.println(“Bentuk[1]:”+Bentuk[1].respons()); System.out.println(“Bentuk[2]:”+Bentuk[2].respons()); System.out.println(“Bentuk[3]:”+Bentuk[3].respons()); System.out.println(“Bentuk[4]:”+Bentuk[4].respons()); } }
Berikut yang bisa saya sampaikan dalam materi polimorfisme. Semoga bermanfaat bagi anda.
Leave a Reply