Monday, October 24, 2011

Polymorphisme dalam pemrograman java

Hari ini tanggal 24 Oktober 2011 terasa sangat panas, sedikit lebih panas dari hari-hari sebelumnya (menurut saya). Pada hari yang panas ini saya mempelajari sebuah sifat dalam pemrograman java yaitu polymorphisme. Apa itu polymorphisme? Polymorphisme dapat digambarkan dengan sebuah objek yang dapat memiliki bermacam-macam sifat. Misal pada variabel yang direferensikan oleh objek dapat melakukan aksi yang berbeda bila tipe objeknya berubah atau diganti.

Ada dua jenis polymorphisme yaitu Override dan Overload. Di dalam java dikatakan bersifat override ketika terdapat method dengan nama, parameter dan tipe data yang sama persis di dalam kelas induk maupun kelas turunannya.


Contoh :
// kelas a sebagai superclass
class a
{
 public void a()
 {
  System.out.println("A");
 }
}

// kelas b sebagai subclass
class b extends a
{
 public void a()
 {
  System.out.println("B");
 }
}

// class utama untuk eksekutor kelas
// dilengkapi dengan method main
public class utama
{
 public  static void main(String[] args)
 {
  a a=new a();
  b b=new b();
  a.a();
  a=b;
  a.a();
 }
}


Overload Polymophisme memiliki perbedaan pada method yang ada. Pada overload polymorphisme terdapat lebih dari satu method dengan nama yang sama tetapi memiliki jumlah parameter maupun tipe data yang berbeda.

Contoh :
// kelas a sebagai superclass
class a
{
 public int ab;
 public void a()
 {
  ab=0;
  System.out.println("A");
 }
 public void a(int ax)
 {
  ab=ax;
  System.out.println("A");
 }
}

// kelas b sebagai subclass
class b extends a
{
 public void a()
 {
  ab=0;
  System.out.println("B");
 }
 public void a(int ax)
 {
  ab=ax;
  System.out.println("B");
 }
}

// class utama untuk eksekutor kelas
// dilengkapi dengan method main
public class utama
{
 public  static void main(String[] args)
 {
  a a=new a();
  b b=new b();
  a.a();
  a.a(10);
  a=b;
  a.a();
  a.a(20);
 }
}
Seperti itulah bentuk polymorphisme dalam java menurut pemahaman yang saya dapatkan. Dan dalam benak saya masih bertanya "seperti apa implementasi sesungguhnya dari polymorphisme ini? dan kenapa harus polymorphisme?" apa karena kehabisan kata-kata untuk membuat nama method? hehe.. entahlah... untuk sementara masih terus belajar. Semoga ada yang terbantu.


No comments:

Post a Comment