No lo entiendo...

04/10/2005 - 18:47 por Sergio | Informe spam
Hola:

Estoy empezando con VB.NET y tirando el siguiente código no entiendo
porque funciona y no me da error:

Public Class Class1
Public Sub Sub1()
'...
End Sub
End Class

Public Class Class2
Inherits Class1

Public Overloads Sub Sub1()
'...
End Sub
End Class

ó

Public Class Class1
Public Overridable Sub Sub1()
'...
End Sub
End Class

Public Class Class2
Inherits Class1

Public Overloads Overrides Sub Sub1()
'...
End Sub
End Class

En el primer caso:

¿Qué estoy sobrecargando (la firma del procedimiento es igual)? ¿No
sería una sobreescritura en toda regla (aunque no tenga ni pueda poner
Overrides?

En el segundo caso:

Es una sobreescritura, pero ¿Por qué puedo decir que es una
sobrecarga (que no lo es)?

Gracias y un saludo.
 

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
04/10/2005 - 20:58 | Informe spam
El uso de Overloads es medio extraño. En el primer caso tiene un significado
similar a Shadows, es decir, oculta el metodo definido en la clase base. Y
en el segundo caso no modifica nada ya que se incluye overrides y por lo
tanto no puede reemplazar a Shadows. No produce error ya que Overloads puede
colocarse aunque haya solo una definicion del metodo. Y ademas Overloads
puede omitirse si el metodo que se esta sobrecargando no esta definido en
una clase base:

Public Class Class1

Public Sub Sub1()
End Sub

Public Sub Sub1(ByVal param As String)
End Sub

End Class

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C

Preguntas similares