Unidad 22. La sobrecarga en las clases en VB (II)





No siempre es necesario realizar una sobrecarga.

 

En el siguiente ejemplo podemos ver repetido el mismo método en tres ocasiones, serían tres sobrecargas.

 

  Public Sub Sobrecarga(ByVal Version1 As Integer)

 

  End Sub

 

  Public Sub Sobrecarga(ByVal Version2 As Integer, ByVal Otro As Boolean)

 

  End Sub

 

  Public Sub Sobrecarga(ByVal Version3 As Integer, ByVal Otro As Single)

 

  End Sub

 

En el programa principal quedaría reflejado como sigue:

 

 

Podemos ver en la siguiente imagen que la línea de argumentos ha cambiado.

 

 

Solo es cuestión de elegir la que necesitemos.

 

Como hemos comentado, el realizar una sobrecarga no implica que haya que reescribir el método completo.

 

En el ejemplo que sigue podemos ver como las sobrecargas de cada método llaman al mismo procedimiento y lo que se hace es ofrecer distintas opciones al usuario, completando por programa las carencias.

 

Public Class Ejemplos

 

  Private Sub Escribe(ByVal Texto As String, _

                      ByVal ColorTexto As ConsoleColor, _

                      ByVal ColorFondo As ConsoleColor)

    Console.ForegroundColor = ColorTexto

    Console.BackgroundColor = ColorFondo

    Console.WriteLine(Texto)

  End Sub

 

  Public Sub EscribirTexto()

    Escribe("hola", ConsoleColor.White, ConsoleColor.Black)

  End Sub

 

  Public Sub EscribirTexto(ByVal Texto As String)

    Escribe(Texto, ConsoleColor.White, ConsoleColor.Black)

  End Sub

 

  Public Sub EscribirTexto(ByVal Texto As String, _

                           ByVal ColorTexto As ConsoleColor, _

                           ByVal ColorFondo As ConsoleColor)

    Escribe(Texto, ColorTexto, ColorFondo)

  End Sub

End Class

 

En el principal su uso quedaría así.

 

Module Module1

  Sub Main()

    Dim Objeto As Ejemplos = New Ejemplos

    Objeto.EscribirTexto()

    Objeto.EscribirTexto("Hola mundo")

    Objeto.EscribirTexto("Hola", ConsoleColor.Blue, ConsoleColor.DarkBlue)

    Console.ReadLine()

  End Sub

End Module

 

Es importante recordar que desde los métodos, podemos ejecutar código privado, funciones o procedimientos, lo cual reduce el volumen de código que hay que escribir, y reduce la posibilidad de errores.

 

  Private Sub Escribe(ByVal Texto As String, _

                      ByVal ColorTexto As ConsoleColor, _

                      ByVal ColorFondo As ConsoleColor)

    Console.ForegroundColor = ColorTexto

    Console.BackgroundColor = ColorFondo

    Console.WriteLine(Texto)

  End Sub

 

Este procedimiento es llamado desde los tres métodos, solo habría que modificarlo una vez, y quedaría actualizado para los tres.

 

22.4. Conclusiones.

La sobre carga, overload, nos permite que un mismo método podamos tenerlo escrito con distintas versiones y con el mismo nombre, de forma que podemos tener distintos puntos de partida para una misma acción.

La sobrecarga se produce cuando el método coincide en nombre pero no en el número de argumentos o aunque tenga el mismo número de argumentos el tipo de los mismos cambia.

 

•Ejercicios propuestos de la Unidad
Octubre-2010
Pág. 22.2

Atrás  Inicio  Adelante






Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies