Polymorphism adalah kemampuan method yang bekerja lebih dari satu tipe argumen, sehingga dapat memiliki berbagai bentuk. Jika diartikan menurut struktur katanya polymorphism artinya “memiliki banyak bentuk”. Polymorphism merupakan bagian pemrograman yang berorientasi objek, dan pada polymorphism terdapat 2 method yaitu overloading dan overriding
overloading : penggunaan satu nama untuk beberapa method yang berbeda (berbeda parameter), jadi dalam satu class terdapat lebih dari satu method yang memiliki nama yang sama tetapi memiliki parameter yang berbeda.
//Polymorphism //derived classes #include <iostream> using namespace std; class Polygon { protected: int width, height; public: void set_values (int a, int b) { width=a; height=b;} }; class Rectangle: public Polygon { public: int area () { return width * height; } }; class Triangle: public Polygon { public: int area () { return width * height / 2; } }; int main () { Rectangle rect; Triangle trgl; rect.set_values (4,5); trgl.set_values (4,5); cout << rect.area() << '\n'; cout << trgl.area() << '\n'; return 0; }
//Polymorphism #include <iostream.h> #include <conio.h> class balok { double p,l,t; public : double Luaspermukaan() { return(2*p*l)+(2*p*t)+(2*l*t); } public : double volume() { return(p*l*t); } public : double volume(double t) { return(p*l*t); } public : double volume(double t, double l) { return(p*l*t); } public : double volume(double t, double l, double p) { return(p*l*t); } void setpanjang(double pan){ p = pan; } void setlebar(double leb){ l = leb; } void settinggi(double tin){ t = tin; } }; void main(){ int pa,le,ti,pp,ll,tt; balok tes; cout<<“Balok”<<endl; cout<<“Input Panjang : “; cin>>pa; cout<<“Input Lebar : “; cin>>le; cout<<“Input Tinggi : “; cin>>ti; tes.setpanjang(pa); tes.setlebar(le); tes.settinggi(ti); cout<<“Luas Permukaan Balok = “<<tes.Luaspermukaan()<<endl; cout<<“Volume Balok = “<<tes.volume()<<endl; cout<<“Tinggi baru = “; cin>>tt; cout<<“Volume Balok 1 parameter = “<<tes.volume(tt)<<endl; cout<<“Lebar baru = “; cin>>ll; cout<<“Volume Balok 2 parameter = “<<tes.volume(tt, ll)<<endl; cout<<“Panjang baru = “; cin>>pp; cout<<“Volume Balok 3 parameter = “<<tes.volume(tt, ll, pp)<<endl; getch(); }
//Contoh Program Overriding (sederhana) #include <constrea.h> #include <string.h> class person { public : virtual void speak(); }; class man : public person{ public : void speak(); }; void person :: speak(){ cout << “Person Speak “<<endl; } void man :: speak(){ cout << “Man Speak “<<endl; } void main(){ person p; man m; p.speak(); m.speak(); person *ptr = new man; ptr->speak(); getch(); }
This comment has been removed by a blog administrator.
ReplyDelete