miércoles, 29 de febrero de 2012

6 - Visual Studio Herencia de Clases

Dentro de la programación orientada a objetos, es posible heredar las opciones de una clase a otra, desde una perspectiva de padre a hijo, permitiendo en la clase hija poder utilizar las variables y métodos publicos o compratidos de la clase Padre, en su totalidad o en su parcialidad según se requiera.

La utilización de los métodos y clases estarán sujetas a las definiciones con las cuales han sido creadas, es decir, Public, Pribate, ReadOnly, Shared, etc.
En el siguiente ejercicio veremos como se hereda de la clase clsPersonal explicado en el post 5- Crear e Instanciar Clases a la clase clsEmpleado, para ello se seguirán los siguientes pasos:

Desde el explorador de soluciones, agregar un nuevo elemento, el cual será una nueva clase, que nombraremos clsEmpleado, de la siguiente forma:



Definir que la clase clsEmpleado heredará desde la clase clsPersonal, en la línea inicial de declaración de la clase, como se muestra a continuación:

Public Class clsEmpleado
Inherits clsPersonal

End Class

Agregue, dentro de la clase clsEmpleado, una variable que controlará datos de tipo fecha y un procedimiento de propiedad que asignará o rescatará los valores de esta variable, de la siguiente forma:

Dim dtFecha As Date

Property Fecha() As Date
Get
Return dtFecha
End Get
Set(ByVal value As Date)
dtFecha = value
End Set
End Property

Agregar un nuevo constructor a la clase clsEmpleado, que inicializará la variable al momento de instanciar ésta. desde la llamada del programa que consume esta clase, de la siguiente forma:

Public Sub New(ByVal dtFec As Date)

dtFecha = dtFec

End Sub

Agregar otro control botón a la solución que permitirá definir las líneas de código que servirán para consumir las opciones de la clase creada:


Dentro del método que atiende el evento clic del botón agregado, incluiremos la llamada a la clase clsEmpleado de la siguiente forma:

Dim emp As New clsEmpleado(Now)

Luego, agregaremos las líneas de código que cargarán las variables de clsPersonal desde la clase clsEmpleado, ya que esta hereda desde esta clase:

emp.Nombre = Me.TextBox1.Text
emp.Apellido = Me.TextBox2.Text

Por último, desplegaremos los valores rescatados desde la clase clsEmpleado.

MessageBox.Show(emp.Fecha)
MessageBox.Show(emp.Nombre + " " + emp.Apellido)

Ejecutar la solución y se podrá observar el siguiente resultado:



Por ultimo, reemplazar el segundo mensaje por las siguientes líneas de código que permitirán identificar desde que clase se está heredando.

If (TypeOf (emp) Is clsPersonal) Then
MessageBox.Show("Empleado es del tipo clsPersonal" + vbNewLine + emp.GetType.ToString())
End If

Ejecutar la aplicación y se podrá obtener, en el mensaje, el siguiente resultado:


No hay comentarios: