Sourcecode
Keterangan:
- Pada sourcecode main (mahasiswa mhs1(…..)) variable di dalam class yaitu nim, nama, alamat, dan jurusan diisi dengan nilai yang ada dalam mhs1() begitu juga dengan sourcecode pegawai peg1(…..)
- Pada sourcecode main (manusia *man) pointer man menunjuk alamat subclass (mahasiswa dan pegawai)
- Sourcecode class manusia (virtual void tampil_data()), perintah “virtual” digunakan untuk overriding. Apa maksudnya? Setiap main memanggil fungsi tampil_data() maka yang terpanggil adalah fungsi yang berada di subclass baik class mahasiswa maupun pegawai tergantung alamat yang ditunjuk pointer *man. Hal ini dapat dilakukan karena fungsi tampil data di setiap subclass memiliki nama dan aksi yang sama, dalam kata lain fungsi tampil data pada subclass meng”overriding” fungsi tampil data pada superclass
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiePcDeY_iP6iTOi_rQ6MMCADSC0gg_Rf19sTKtPWMOw1JQlinEldP2d1W6tC1ve5QbL2mGMm01xg-Fj4hUINUQDEVvC-KMi7AurfjNyzSTJdb6Bc_bTacEen44OmlyR_Ana9NvmlCLGO8/s1600/manusia.png)
Pada tampilan running di atas dapat dilihat bahwa data yang
terisi pada fungsi tampil_data() disesuaikan dengan nilai yang dijadikan
parameter. Tapi kenapa nama kelasnya masih kelas manusia (superclass) ??
Silahkan cek kembali sourcecode di atas....
Lihat pada bagian superclassnya terdapat code
Void judul(){cout<<……..)
Karena fungsi tersebut tidak di override maka yang
terpanggil adalah fungsi yang berpada di dalam superclass. Perhatikan fungsi
tampil_data yang memakai perintah “virtual”, data yang ditampilkan disesuaikan
dengan variable yang ditunjuk pointer *man. Maka dari itu, pada code void
judul() di superclass perlu ditambahkan perintah “virtual” agar ia dapat di
override oleh subclassnya.
Berikut code yang telah diedit bagian void judul() nya
Berikut tampilan runningnya
Kesimpulan:
Perintah virtual digunakan untuk men”override” fungsi pada
superclass dengan fungsi pada subclassnya. Dengan catatan fungsi pada subclass
harus mempunyai kesamaan dengan superclass,yaitu:
- Nama
- Return type
- Daftar parameter (jumlah, tipe, dan urutan)
Manfaat dari overriding adalah programmer dapat membuat 1
fungsi pada superclass yang bisa dipakai dengan aksi yang berbeda pada subclass asalkan memenuhi syarat yang
tertera di atas.
terima kasih.. :)