Para realizar esta labor utilizaremos la aplicación construída con anterioridad.
Agregar una nueva clase a la cual llamaremos clsShadowing
Renombrar el nombre de la clase de la siguiente forma:
Public Class clsShadowed
End Class
Dentro de esta clase agregaremos los siguientes métodos que atenderán con mismo nombre dos llamadas con distintos parámetros (Polimorfismo)
Public Sub Foo(ByVal strMsg As String)
MessageBox.Show(strMsg)
End Sub
Public Sub Foo(ByVal strName As String, ByVal strMsg As String)
MessageBox.Show(strMsg + vbNewLine + strName)
End Sub
Dentro del mismo proyecto de clase agregaremos al final de la clase la siguientes líneas de código:
Public Class clsShadows
Inherits clsShadowed
Public Shadows Sub Foo(ByVal intAge As Integer)
MessageBox.Show("Tu Edad es " + intAge.ToString())
End Sub
End Class
Quedando todo de la siguiente forma:
Public Class clsShadowed
Public Sub Foo(ByVal strMsg As String)
MessageBox.Show(strMsg)
End Sub
Public Sub Foo(ByVal strName As String, ByVal strMsg As String)
MessageBox.Show(strMsg + vbNewLine + strName)
End Sub
End Class
Public Class clsShadows
Inherits clsShadowed
Public Shadows Sub Foo(ByVal intAge As Integer)
MessageBox.Show("Tu Edad es " + intAge.ToString())
End Sub
End Class
Agregue un botón al formulario de la aplicación y en el método que atiende el evento clic, agregue las siguientes líneas de código.
Dim cls As New clsShadows
cls.Foo(30)
Si se observa, aunque los métodos de la clase base son públicos, al definir el método de la clase clsShadows como del tipo Shadows, automáticamente se ocultan los métodos Bases y solo queda disponible el método de la clase que se instancias, si se desea instanciar un método de la clase base se debe llamar directamente instanciando la clase base.
No hay comentarios:
Publicar un comentario