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