Jumat, 08 Januari 2010

Polymorphism

Ciri ketiga dari Object Oriented Programming adalah Polymorphism. Apakah polymorphism? Polymorphism adalah kemampuan dari object–object yang berbeda dalam sebuah class hirarki untuk melakukan fungsi (behavior) unik terhadap suatu respon message. Polymorphism mempunyai sifat single interface, multiple method. Hal ini dapat disebut juga kemampuan class menyembunyikan implementasi yg berbeda dalam interface yg sama. Polymorphism memungkinkan sebuah method yang mempunyai nama yang sama, namun tugas yang berbeda. Dengan polymorphism dimungkinkan suatu fungsi yang implementasi detilnya belum ada (isi fungsi belum ditulis). Fungsi tersebut akan dibuat virtual dan class yg berisi fungsi virtual akan menjadi abstract class / Abstract Data type (absract class biasanya adalah base class, dan tidak bisa dibuat instance).

Polymorphism sangat erat hubungannya dengan inheritance. Polymorphism dapat diimpelementasikan dengan 2 cara, yaitu Overloading Function (penggunaan kembali nama fungsi yang sama tapi dengan argumen yang berbeda) dan Overriding Function (sebuah fungsi dalam class turunan yang memiliki nama, return type dan argumen function yang sama dengan fungsi dalam class induk).

Polymorphism dibagi menjadi 2, yaitu trivial polymorphism dan trus polymorphism. Trivial polymorphism menggunakan overloading function dalam implementasinya, sedangkan pada true polymorphism, digunakan overriding function.

Contoh Polymorphism:
#include
class cA
{public: double A(double x)
{ return x*x;}
double B(double x)
{ return A(x)/5;}
double B(double x, double y) //Overloading Function/Trivial Polymorphism
{ return x/y;}
};
class cB: public cA
{public: double A(double x) //Overriding Function/True Polymorphism
{return x*x*x;}
};
void main()
{ cB oB;
cout << oB.B(10);
}