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);
}