-
En
tiempo de ejecución, los objetos de una clase derivada pueden ser
tratados como objetos de una clase base en lugares como parámetros de
métodos y colecciones o matrices.
Cuando ocurre, el tipo declarado del objeto ya no es idéntico a su tipo en tiempo de ejecución.
-
Las clases base pueden definir e implementar métodosvirtuales, y las clases derivadas pueden invalidarlos, lo que significa que pueden proporcionar su propia definición e implementación.
En
tiempo de ejecución, cuando el código de cliente llama al método, CLR
busca el tipo en tiempo de ejecución del objeto e invoca esa
invalidación del método virtual. Por
lo tanto, en el código fuente puede llamar a un método en una clase
base y hacer que se ejecute una versión del método de la clase derivada.
Cuando una clase derivada hereda de una clase base, obtiene todos los métodos, campos, propiedades y eventos de la clase base. El diseñador de la clase derivada tiene las siguientes opciones:
-
Invalidar los miembros virtuales de la clase base.
-
Heredar el método de la clase base más próximo sin invalidarlo.
-
Definir una nueva implementación no virtual de esos miembros que oculte las implementaciones de la clase base.
Una clase derivada puede detener la herencia virtual declarando una invalidación como sealed. Para ello, es necesario colocar la palabra clave sealed antes de la palabra clave override en la declaración del miembro de la clase.
No hay comentarios:
Publicar un comentario