Podemos sobrecargar métodos existentes en una clase base dentro de una clase derivada, para ello
simplemente escribimos la implementación del método sobrecargado utilizando la palabra clave
Overloads, tal y como se ha explicado en anteriores apartados.
Tomemos como ejemplo una clase base Empleado y su clase derivada Administrativo. Cuando
calculamos los incentivos para un empleado, lo hacemos basándonos en una operación sobre el
salario; sin embargo, los incentivos para el administrativo se calculan en base a un número de horas,
por lo que escribimos dos implementaciones del mismo método en cada clase, sobrecargando el
método en la clase Administrativo, como muestra el Código fuente 264.
Module Module1
Sub Main()
Dim loEmp As Empleado = New Empleado()
loEmp.psNombre = "Ana Gómez"
loEmp.piSalario = 2000
loEmp.CalcularIncentivos()
loEmp.VerIncentivos()
Dim loAdmin As New Administrativo()
loAdmin.psNombre = "Jorge Peral"
loAdmin.piSalario = 1600
loAdmin.CalcularIncentivos(10)
loAdmin.VerIncentivos()
Console.ReadLine()
End Sub
End Module
Public Class Empleado
Public piID As Integer
Public psNombre As String
Public piSalario As Integer
Public piIncentivos As Integer
' calcular los incentivos en base
' al salario
Public Sub CalcularIncentivos()
Me.piIncentivos = Me.piSalario / 10
End Sub
Public Sub VerIncentivos()
Console.WriteLine("Los incentivos de {0} son {1}", _
Me.psNombre, Me.piIncentivos)
End Sub
End Class
Public Class Administrativo
Inherits Empleado
' calcular los incentivos en base a horas
Public Overloads Sub CalcularIncentivos(ByVal liHoras As Integer)
Me.piIncentivos = liHoras * 15
End Sub
End Class
Código fuente 264
Hemos de aclarar que si no utilizáramos la palabra clave Overloads en la subclase, el programa
también se ejecutaría, pero obtendríamos un aviso del compilador advirtiéndonos de la situación. Este
mensaje lo podemos ver utilizando la ventana Lista de tareas, que emplea el IDE para mostrar los
errores y avisos del compilador. Ver Figura 120.Figura 120. Lista de tareas y editor de código mostrando aviso del compilador. |
No hay comentarios:
Publicar un comentario