Métodos
Sobrecargo
Hay algunos casos cuando una clase necesita realizar la misma actividad empezando con los mismos valores de entrada-esto es, con diferentes argumentos. Hemos visto algunos ejemplos de este comportamiento cuando vimos constructores. Las mismas reglas aplican para los métodos con sobrecargo. Una clase que modele una calculadora podria tener un método llamado Add que podria ser sobrecargado para que tome diferentes tipos de valores numericos (short, Integer, Long, etc…)
Public Class Calculator
Public Overloads Function Add(ByVal x As Short, ByVal y As Short) As Long
Return x + y
End Function
Public Overloads Function Add(ByVal x As Integer, ByVal y As Integer) As Long
Return x + y
End Function
Public Overloads Function Add(ByVal x As Long, ByVal y As Long) As Long
Return x + y
End Function
End Class
La palabra Overloads es usado para indicar que el método esta siendo sobrecargado. Podemos ahora usar la clase para calcular la suma de dos Integer, longs u otros. Por ejemplo podriamos usar la clase Calculador de la siguiente manera:
Module Module1
Sub Main()
Dim result As Long
Dim calc As Calculator
calc = New Calculator
'Dim calc As New Calculator()
Dim s1 As Short = 3, s2 As Short = 5
result = calc.Add(s1, s2)
Console.WriteLine("Resultado de la suma de Short: {0}", result)
Dim i1 As Integer = 3, i2 As Integer = 5
result = calc.Add(i1, i2)
Console.WriteLine("Resultado de la suma de Integer: {0}", result)
Dim j1 As Long = 3, j2 As Long = 5
result = calc.Add(j1, j2)
Console.WriteLine("Resultado de la suma de Long: {0}", result)
Console.ReadLine()
End Sub
End Module
El uso de la palabra Overloads es requerida para todos los métodos que tienen el mismo nombre. Tambien, los métodos sobrecargados deben diferir en su listado de argumentos: Deben de tener diferentes numeros o diferente tipos de argumentos, o tenerlos en diferente orden.
Los Métodos sobrecargados deben de ser usados para realizar tareas que son muy similares pero pueden tener parámetros de entrada diferentes. No debemos utilizar los métodos sobrecargados para realizar tareas que son semánticamente diferentes, esto es, tareas que no realizan la misma acción.
Se verá más a detalle a cerca de los métodos sobrecargados cuando veamos herencia e interfaces.
No hay comentarios.:
Publicar un comentario