Merupakan konsep pokok didalam perancangan orientasi objek. Polymorphisme berarti mempunyai banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic bila objek-objek itu mempunyai antarmuka-antarmuka yang identik namun mempunyai perilaku-perilaku berbeda. Polymorphisme berupa satu nama tunggal (seperti deklarasi fungsi) dan dapat menyatakan objek-objek kelas-kelas berbeda yang terhubung dengan satu super kelas yang common diantara kelas-kelas itu. Sembarang objek ditandai dengan nama ini akan dapat menanggapi sekumpulan operasi yang common.
Polymorphisme merupakan fitur yang ada karena interaksi konsep pewarisan dan dynamic binding. Polymorphisme merupakan fitur penting dan ampuh bahasa pemrograman orientasi objek. Kepentingannya merupakan peringkat kedua setelah dukungan terhadap abstraksi orientasi objek. Fitur ini merupakan pembeda orientasi objek dari bahasa tradisional yang hanya sampai pada tipr data abstrak. Bahasa yang tidak mendukung polymorphisme belum layak disebut bahasa pemrograman orientasi objek, paling-paling bahasa disebut bahasa berbasis objek bila telah mendukung pengapsulan.
Polymorphisme memungkinkan kita mengenali dan mengeksploitasi keserupaan-keserupaan di antara kelas-kelas berbeda. Ketika kita mengenali bahwa beberapa jenis objek dapat menanggapi pesan yang sama. Kita mengenali tidak adanya pembeda antara nama pesan dan metode. Objek mengirim pesan, jika penerima mengimplementasikan metode dengan penanda sama maka objek itu akan memberi tanggapan khas. Tanggapan-tanggapan berbeda dimungkinkan, metode-metode yang berbeda dari instan kelas-kelas berbeda. Pengiriman cukup menerima pesan, tidak perlu peduli dengan kelas dari objek pertama. Berikut adalah contoh programnya :
- Inilah kelas utamanya :
class Student {
public void Write(int ID, int Grad, String Fname, String Lname) {
m_ID = ID;
m_Graduation = Grad;
m_First = Fname;
m_Last = Lname;
}
public void Display()
{
System.out.println( "Student: " + m_ID + " " + m_First + " " + m_Last + " Graduated: " + m_Graduation);
}
private int m_ID, m_Graduation;
private String m_First;
private String m_Last;
}
- Ini adalah kelas subkelas nya :
class StudentGrad extends Student {
public void Write(int ID, int Grad, String Fname, String Lname, int yrGrad, String unSch, String major)
{
super.Write(ID, Grad, Fname, Lname);
m_UndergradSchool = unSch;
m_Major = major;
m_Grad = Grad;
YearGraduated = yrGrad;
}
public void Display(){
super.Display();
System.out.println(" Graduated: " + m_Grad + " " + m_UndergradSchool + " " + m_Major + " " + YearGraduated);
}
private Integer YearGraduated,m_Grad;
private String m_UndergradSchool;
private String m_Major;
}
- Ini adalah pelengkapnya (info) :
class StudentInfo {
public static void main (String args[]) {
StudentGrad myStudent = new StudentGrad();
myStudent.Write(10,1,"Imam","Febri", 2012,"Gunadarma University","CS");
myStudent.Display();
}
}
- - Dan inilah outputnya :
Teman Sekelompok : Taufiq Ramadhan (56410837)
Tidak ada komentar:
Posting Komentar