miércoles, 29 de febrero de 2012

9 - Visual Studio Sobreescribiendo miembros desde una Clase Base.

Cuando una clase deriva desde una clase base, esta hereda todos los miembros accesibles incluyendo funciones, subrutinas y propiedades. Tú puedes reemplazar la implementación del código del propietario. Esto es llamado sobreescritura. En orden de sobreescritura de un miembro de clase base el procedimiento debe ser definido con el identificador Overridable.. Esto permite al desarrollador reemplazar funcionalidad de la clase base, explícitamente de lo que es permitido.

Para esto realizaremos el siguiente ejemplo:

Crearemos una nueva aplicación Windows llamada WinClase-002.

Agregaremos una nueva clase llamada clsBase. Siguiendo los pasos definidos en el ejercicio anterior.

Dentro de la clase definida agregaremos un método con las siguientes líneas de código:

Public Overridable Sub Escribir(ByVal strMsg As String)

MessageBox.Show(strMsg + vbNewLine + " desde clsBase")

End Sub

Agregaremos una nueva clase a la solución, que la llamaremos clsDeriva.

Definir que esta clase heredará de la clase base clsBase, de la siguiente forma:

Public Class clsDeriva
Inherits clsBase


End Class

Dentro de la clase clsDeriva, agregaremos el siguiente método:

Public Overrides Sub Escribir(ByVal strMsg As String)

MessageBox.Show(strMsg + vbNewLine + " desde clsDeriva")

End Sub

En el formulario que se genera por defecto en la solución, incluir un control Button, desde el cuadro de herramientas.


En el método que atiende el evento clic del botón button1 agregar las siguientes líneas de código:

Dim cls As New clsBase

cls.Escribir("Hola base")

Ejecutar la solución y observar que el mensaje que aparece es de la clase base.


Detener la aplicación y agregar en el método que atiende el evento clic del botón button1 las siguientes líneas de código, que reemplazarán a las anteriores:

Ejecutar la aplicación con las modificaciones incluidas.


Detener la ejecución y agregar al final de la clase clsBase el siguiente método:

Public Overridable Sub Bar()

Me.Escribir("Bar")

End Sub

Reemplazar las líneas de código del botón button1 con las siguientes líneas y ejecutar la aplicación.

Dim clsBar As New clsBase
clsBar.Bar()


Detener la aplicación y reemplazar las líneas de código del botón Button1 con las siguientes líneas de código y ejecutar la aplicación:

Dim clsDer As New clsDeriva
clsDer.Bar()


En la clase base reemplazar la llamada del método escribir. de Me a MyClass, como se muestra a continuación. Ejecutar la aplicación y se observará que la aplicación llama a la función de la clase base y no de la clase deriva.

Public Overridable Sub Bar()

MyClass.Escribir("Bar")

End Sub


En el método escribir de la clase clsDeriva agregar la siguiente línea de código:

MessageBox.Show(strMsg + vbNewLine + " desde clsDeriva")
MyBase.Escribir("Mi Base")

En el método que que atiende el evento clic del botón button1 del formulario, agregar las siguientes líneas de código:

Dim clsDer As New clsDeriva
clsDer.Escribir("Hola")

Al ejecutar la aplicación se desplegará el siguiente mensaje:



No hay comentarios: