SOBRECARGA

 

 

 

 

 

 

  Sobrecargar Constructores

 

  Sobrecargar Métodos

 

Volver a página principal

 

 

Sobrecargar Constructores

 

En el artículo de constructores hemos visto como crear objetos con unas características iniciales pero ¿qué pasa si queremos crear un objeto gato sin ningún parámetro o simplemente desconocemos alguno?. Simplemente sobrecargaremos los constructores dentro de la clase. ¿Sobrecargar? Exacto, así llamaremos a los métodos con un mismo nombre pero que permitirán la entrada de diferentes parámetros. Normalmente, los constructores suelen ser sobrecargados y no hará falta la utilización de ningún modificador extra.

Vamos a ampliar los constructores de la clase Gato:

 

 

'Antiguo constructor parametrizado

 

Sub New(ByVal col As String, ByVal Gr As Integer)

   Me.color = col

   Me.Peso = Gr

End Sub

'Nuevo constructor sobrecargado de una clase derivada

 

Sub New()

     MyBase.New   

End Sub

'Nuevo constructor sobrecargado de una clase primaria

 

Sub New()

    

End Sub

 

 

 

Ahora el objeto se puede instanciar sin necesidad de enviarle ningún parámetro. Si la clase es derivada, debemos llamar al constructor de la clase primaria mediante la palabra clave MyBase ya que no nos es posible llamar al constructor primaria directamente desde el código de la aplicación. Por supuesto este es un trabajo que debe realizar la clase y no el usuario que la utilice.  

 

 

Dim gato1 As New Gato("blanco", 500)

Dim gato2 As New Gato()

 

 

 

 

Sobrecargar Métodos

 

De la misma forma en que hemos sobrecargado un constructor podemos también sobrecargar métodos de nuestras clases para así darles más funcionalidad y hacerlas menos estrictas a la hora de ser usadas por un usuario. Al Igual que con los constructores los métodos sobrecargados se diferenciaran sólo por el tipo de parámetros que aceptarán y tendrán en común el nombre de la acción.

También debemos tener en cuenta las siguientes limitaciones : NET no permite la sobrecarga de métodos con los mismos parámetros de entrada, aunque la implementación de estos sea diferente (recordemos que los métodos sobrecargados sólo se diferenciaran por los parámetros!!)  No es correcto intentar sobrecargar una propiedad con un método o al revés. Por último tampoco se permite sobrecargar métodos que contengan algún parámetro opcional (la palabra clave Optional) que contenga los mismos parámetros. Si pensamos un poco, el simple hecho de poner un parámetro opcional ya crea sobrecarga en el mismo método y entraría en conflicto si creamos una nueva sobrecarga con alguna coincidencia en los parámetros opcionales.

Veamos unos ejemplos:

 

 

 

Sub Correr()

   Console.WriteLine("Corro")

End Sub

 

Sub Correr(ByVal velocidad As Integer)

   Console.WriteLine("Corro a una velocidad de :" & velocidad)

End Sub

 

Sub Correr(ByVal velocidad As Integer, Lugar As String)

   Console.WriteLine("Corro a una velocidad de :" & velocidad & " por " & Lugar)

End Sub

 

 

 

Volver a Título▲            ◄Índice principal►             Timeless web site    

 

 

Este sitio se actualizó por última vez el 27 de diciembre de 2004