Tuesday, May 20, 2014

Polymorphism - Overriding (tugaspbo_seksi3_sitiafifah_201381076)


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




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.. :)

No comments:

Post a Comment