visual basic 6 OOP Polymorphism

Polymorfisme sesuai dengan namanya adalah dapat berubah bentuk dari bentuk dasarnya.
Marketing dan Programmer adalah sama-sama karyawan yang mungkin sama-sama mempunyai perhitungan gaji. Tetapi mungkin paramameter ataupun factor-faktor yang mempengaruhi gaji mereka bisa berbeda.
Polimorfisme dalam visual basic 6 bisa diimplemantasikan dengan Membuat function ataupun prosedur baru yang mirip dengan function pada Class Induk (Super Class).
Namun Anda tetap memakai function dengan nama yang mirip ini sebagai function dasarnya. Lalu Anda bisa melakukan penambahan parameter pada method atau property di class turunan (Sub Class).
 Lihat kode di bawah ini adalah method get Gaji pada kelas karyawan:
Public Function getGaji(iAbsen As Integer, dGajiPokok As Double) As Double
 
getGaji = iAbsen * dGajiPokok
End Function
Kode getGaji Kelas Karyawan akan dipolimorfime (rubah bentuk) di kelas turunannya CProgrammer. Caranya lihat kode di bawah ini:
Lihat kode di bawah ini:


Private Function CKaryawan_getGaji(iAbsen As Integer,_
   dGajiPokok As Double) As Double
   '----
End Function
 Public Function getGaji(oKaryawan As CKaryawan, dBonusSkillKode As Double)
   
Set oKaryawan = New CKaryawan
    getGaji = oKaryawan.getGaji(30, 60000) + dBonusSkillKode
End Function
 Anda dapat melakukan hal yang sama dengan kelas turunan CMarketing. Inilah kodenya:

Private Function CKaryawan_getGaji(iAbsen As Integer, _
   dGajiPokok As Double) As Double
   '----
End Function

Public Function getGaji(oKaryawan As CKaryawan, dBonusMarketing As Double, dUangMinyak as double)
     Set oKaryawan = New CKaryawan
     getGaji = oKaryawan.getGaji(30, 60000) + dBonusMarketing + dUangMinyak
End Function
Anda lihat kata function Function CKaryawan_getGaji  diturunkan dari kelas induk (CKaryawan). Function itu tetap ditulis namun tidak digunakan. Karena jika tidak ditulis visual basic 6 akan memberikan respons error.
Lalu Saya membuat function baru dengan nama sama:
Public Function getGaji(oKaryawan As CKaryawan, dBonusMarketing As Double, dUangMinyak as double)
     Set oKaryawan = New CKaryawan
     getGaji = oKaryawan.getGaji(30, 60000) + dBonusMarketing + dUangMinyak
End Function
 
Function getGaji yag berasal dari karyawan di sertakan ke dalam function baru sebagai objek karyawan. Lalu saya menambahkan parameter baru
dBonusMarketing dan dUangMinyak
Inilah yang saya maksudkan dengan polimorfis atau perubahan bentuk dari kelas asalnya. Namun Anda dapat memanggil dengan nama yang sama yaitu getGaji.

0 komentar:

Poskan Komentar

Starcraft Pointer
 
Web Design by : Givo-Alfajri ..!! ®