Polymorphism yang berarti “mempunyai banyak bentuk” juga merupakan salah satu sifat class yang memungkinkan sebuah method mempunyai nama yang sama, namun memiliki aksi yang berbeda.
Overloading
3 signature yang perlu diperhatikan dalam melakukan overloading :
- Jumlah argument
- Letak argument
- Type argument
Contoh function overloading
Void hitung (int x, int y);
Void hitung(float x, float y);
Overriding
ada 2 jenis virtual method dalam overriding, yaitu :
Pure Virtual Method (tanpa function body)
contoh : virtual void suara() = 0;
Squasi Virtual Method (ada function body)
contoh : virtual void info() {;}
contoh coding
#include "iostream.h"
class Hewan
{
public :
void info()
{
cout << "info() class Hewan" << endl;
}
virtual void suara()
{
cout << "suara() class Hewan" << endl;
}
};
class Piaraan : public Hewan
{
public :
void info()
{
cout << "info() class Piaraan" << endl;
}
void suara()
{
cout << "suara() class Piaraan" << endl;
}
};
void main()
{
Piaraan pet;
Hewan *satu;
satu = &pet; //menunjuk ke objek pet
satu->info();
satu->suara();
cin.get();
}
class Hewan
{
public :
void info()
{
cout << "info() class Hewan" << endl;
}
virtual void suara()
{
cout << "suara() class Hewan" << endl;
}
};
class Piaraan : public Hewan
{
public :
void info()
{
cout << "info() class Piaraan" << endl;
}
void suara()
{
cout << "suara() class Piaraan" << endl;
}
};
void main()
{
Piaraan pet;
Hewan *satu;
satu = &pet; //menunjuk ke objek pet
satu->info();
satu->suara();
cin.get();
}
hasil eksekusi