1 / 3

Kelas Dasar

http://www.mercubuana.ac.id. 13 POLIMORFISME Polimorfisme (polymorphism) erat kaitannya dengan Pewarisan. Polimorfisme adalah pemikiran bahwa objek dinamis suatu kelas dasar dapat berperilaku seperti kelas

Télécharger la présentation

Kelas Dasar

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. http://www.mercubuana.ac.id 13 POLIMORFISME Polimorfisme (polymorphism) erat kaitannya dengan Pewarisan. Polimorfisme adalah pemikiran bahwa objek dinamis suatu kelas dasar dapat berperilaku seperti kelas turunan. Ketika objek tersebut menunjuk kelas dasar, objek tersebut berperilaku seperti kelas dasar, tetapi ketika objek tersebut menunjuk kelas turunan, objek tersebut berperilaku seperti kelas turunan. Dalam hal ini objek dapat memiliki beberapa bentuk, tergantung pada saat itu kelas mana yang ditunjuk. Yang perlu menjadi catatan, bahwa perubahan perilaku ini dari kelas dasar kepada kelas turunan, tidak dapat objek kelas turunan menunjuk kelas dasar. Polimorfisme dimungkinkan karena adanya mekanisme ikatan dinamis (dynamic binding). Ikatan dinamis adalah ikatan yang terjadi pada saat program dijalankan (run- time). Ikatan yang terjadi pada saat kompile disebut ikatan statis. Ikatan dinamis hanya dapat terjadi antara suatu objek dinamis dengan metode yang dinamis juga, dalam hal ini metode virtualnya (maya). A. Polimorfisme Pada Pewarisan Tunggal Suatu metode dapat dideklarasikan secara virtual dengan cara menambah kata virtual pada deklarasi fungsi. Jika suatu metode dideklarasikan secara virtual dalam kelas dasar, maka keadaan virtual tetap akan berlaku untuk fungsi yang sama di seluruh kelas turunan meskipun kata virtual tidak disebutkan. Untuk menjelaskan tentang ikatan dinamis dalam hubungannya dengan polimorfisme, perhatikan rancangan kelas berikut ini : class A { public: tipe fungsi_statis(); Kelas Dasar Ikatan Statis tipe virtual fungsi_virtual(); }; class B : public A { public: tipe fungsi_statis(); tipe fungsi_virtual(); }; Ikatan Dinamis 1Modul Bahasa C++, harni_kus@yahoo.com Kelas Turunan

  2. http://www.mercubuana.ac.id char* fungsi_statis() {return("fungsi statis kelas B");} char *fungsi_virtual() {return("fungsi virtual kelas B");} }; class C : public B {public: char* fungsi_statis() {return("fungsi statis kelas C");} char *fungsi_virtual() {return("fungsi virtual kelas C");} }; main () { A*pa; Ikatan Statis Ikatan Dinamis Pa = Objek Dinamis Kelas Turunan pa=new A; cout<<"Objek pa berbentuk objek kelas A"<<endl <<pa->fungsi_statis()<<endl <<pa->fungsi_virtual()<<endl<<endl; delete pa; pa=new B; cout<<"Objek pa berbentuk objek kelas B"<<endl <<pa->fungsi_statis()<<endl <<pa->fungsi_virtual()<<endl<<endl; delete pa; pa=new C; cout<<"Objek pa berbentuk objek kelas C"<<endl <<pa->fungsi_statis()<<endl <<pa->fungsi_virtual()<<endl<<endl; delete pa; } Hasil Eksekusi: 3Modul Bahasa C++, harni_kus@yahoo.com

  3. http://www.mercubuana.ac.id public: void virtual berlari() {cout<<"berlari cepatnya kuda"<<endl;} }; class burung { public: void virtual terbang() {cout<<"terbang tingginya burung"<<endl;} }; class pegasus: public kuda, public burung { public: void berlari() {cout<<"berlari cepatnya pegasus"<<endl;} void terbang() {cout<<"terbang tingginya pegasus"<<endl;} }; main () { kuda *pkd; pkd=new kuda; cout<<"Sifat-sifat kuda : "<<endl; pkd->berlari(); delete pkd; pkd = new pegasus; cout<<endl<<"Sifat-sifat pegasus : "<<endl; pkd->berlari(); burung *pbr; pbr=new burung; cout<<endl<<"Sifat-sifat kuda : "<<endl; pbr->terbang(); delete pbr; pbr=new pegasus; cout<<endl<<"Sifat-sifat pegasus : "<<endl; pbr->terbang(); } 5Modul Bahasa C++, harni_kus@yahoo.com

More Related