Buscador

Herencia

Este es uno de los aspectos más importantes, sino el más importante, en un lenguaje orientado a objetos. Empleando la herencia podemos crear una clase base o padre, con especificaciones generales, y a partir de ella, crear nuevas clases derivadas o hijas. En el momento de declarar una clase derivada, y sin haber escrito más código, ya tenemos acceso a todos los miembros de la clase base; posteriormente, podemos escribir código adicional en la clase derivada para ampliar sus funcionalidades. 
Una clase hija puede servir a su vez como clase base para la creación de otra clase derivada, y así sucesivamente, con lo que podemos componer nuestra propia jerarquía con la estructura de clases que necesitemos. 
Para crear una clase derivada, debemos declarar una nueva clase, especificando cuál es su clase base mediante la palabra clave Inherits. En el Código fuente 256 se muestran los dos modos disponibles de crear una clase heredada.

' crear clase derivada en dos líneas
Public Class Administrativo
Inherits Empleado
' crear clase derivada en la misma línea
Public Class Administrativo : Inherits Empleado
Código fuente 256

Una vez que creemos la clase derivada, tendremos a nuestra disposición todos los elementos de la clase base, tanto desde la propia clase, como desde el código cliente.
Por ejemplo, supongamos que se nos plantea la necesidad de crear un tipo de empleado, con características más especializadas de las que ahora tiene nuestra clase Empleado. Podemos optar por modificar toda la implementación ya existente para la clase Empleado, lo que afectaría al código cliente que ya utiliza dicha clase, y seguramente de forma negativa; o bien, podemos crear una nueva clase, que herede de Empleado, y en la que definiríamos el comportamiento de este nuevo tipo de empleado. A esta nueva clase le daremos el nombre Administrativo, y su código podemos verlo en el Código fuente 257.

Public Class Administrativo
Inherits Empleado
Public Sub EnviarCorreo(ByVal lsMensaje As String)
Console.WriteLine("Remitente del mensaje: {0} {1}", _
Me.Nombre, Me.Apellidos)
Console.WriteLine("Texto del mensaje: {0}", lsMensaje)
Console.ReadLine()
End Sub
End Class
Código fuente 257

No hay comentarios:

Publicar un comentario