Definición: ¿Qué significa Anular?
Anular, en C #, es una palabra clave que se usa para reemplazar un miembro virtual que está definido en una clase base con la definición de ese miembro en la clase derivada.
El modificador override permite a los programadores especificar la especialización de un miembro virtual existente heredado de una clase base para proporcionar una nueva implementación de ese miembro en la clase derivada. Puede usarse con un método, propiedad, indexador o un evento que necesita ser modificado o extendido en una clase derivada.
El modificador de invalidación está destinado a implementar el concepto de polimorfismo en C #.
Override se diferencia de los nuevos modificadores en que el primero se usa solo para anular un miembro virtual de una clase base, mientras que el último también ayuda a anular un miembro no virtual definido en una clase base al ocultar la definición contenida en la clase base.
Techinfo explica Override
La anulación se utiliza principalmente en el contexto de un método virtual, en el que la ejecución de un tipo de método está determinada por el tipo de tiempo de ejecución de la instancia en la que se invoca el método. Durante la invocación, la persona que llama no necesita saber que el objeto llamado era una instancia de la clase derivada.
Por ejemplo, si Shape es una clase base que proporciona la implementación básica que es común para todos los objetos de su clase, se puede definir con un método virtual, CalculateArea. Square puede ser una clase derivada de Shape, que puede anular el método CalculateArea para implementar la lógica necesaria para calcular el área de un cuadrado.
Para anular un método en una clase derivada:
- El método de la clase base debe declararse con un modificador virtual.
- El método de la clase base puede ser abstracto pero no estático.
- El modificador de acceso del método en las clases base y derivada debe ser el mismo.
- El método debe definirse con la misma firma tanto en las clases derivadas como en las básicas.
Esta definición se escribió en el contexto de C #