Ejemplo # 01
Comencemos con el ejemplo más básico de usar el método virtual en C#. Utilizaremos la biblioteca del sistema dentro de nuestro código en la primera línea utilizando la palabra clave "usando" como se muestra. Después de esto, creamos una clase de base pública llamada "Parent" usando la palabra clave "clase". Esta clase base contiene una sola función llamada "Mostrar" del tipo de retorno vacío y modificador de acceso público, i.mi., función virtual.
Esta función virtual contiene una instrucción de función WriteLine () simple de la clase de consola para imprimir la oración de texto simple en la ejecución en nuestra pantalla, I.mi., "Método virtual en la clase principal". Otra clase pública llamada "Child" fue creada después de eso. Como se muestra, esta clase se ha derivado de la clase "Parent". El método "Show" se ha implementado dentro de él que se ha anulado de la clase base "Padre" utilizando la palabra clave "anular" seguido del tipo de retorno "nulo" y comenzó con el modificador de acceso "público".
Como esta función virtual se ha anulado de la clase base, debe contener alguna implementación adicional. Por lo tanto, hemos estado utilizando la instrucción WriteLine () de la clase de consola aquí para mostrar una nueva cadena de texto en el shell que indica "anular el método virtual en la clase infantil". Las funciones de la clase padre e hijos son del mismo nombre pero una implementación un poco diferente. Toda esta implementación funcionará después de usar el método main () en el código. Entonces, hemos creado una nueva clase independiente llamada "nueva" con la palabra clave "clase". Esta clase contiene un método de tipo static main () con un tipo de retorno vacío. La ejecución comenzó al crear un objeto de clase principal "O1" con la palabra clave "nueva" seguida del nombre de la clase. Hemos usado este nuevo objeto O1 para llamar a la función virtual "mostrar" desde la clase principal. Después de esto, hemos creado otro objeto O2 para la clase infantil usando la palabra clave "nueva", comenzando con el nombre de la clase base y terminando con el nombre de la clase infantil. Esto muestra que la herencia real se ha llevado a cabo en el código C#. El objeto de clase infantil "O2" se ha utilizado para llamar a la función virtual de "mostrar" de la clase infantil. La llamada de función no debe mezclarse al ejecutar el método main (). Además, debemos obtener la función show () de la clase principal ejecutada primero y luego la función show () de la función de clase infantil. La clase nueva ha terminado aquí, y nuestro código se completa ahora.
Después de guardar este código dentro del editor de texto, volvimos a la terminal ya que nuestro código debe compilarse con el compilador "MCS" C#. Después de la compilación exitosa, hemos probado la ejecución de su archivo "exe" que acaba de crear en la carpeta de inicio con el tiempo de ejecución "mono" de C#. Ejecutó el código y mostró la cadena del método virtual desde la clase principal primero y luego el texto de la cadena del método ShowDden Show () de la clase infantil.
Ejemplo # 02
Hagamos que nuestro código sea un poco avanzado y diferente del ejemplo anterior. Lo hemos estado comenzando con el uso de la biblioteca del sistema en la primera línea de código. Después de eso, utilizamos una prueba de nombres de clase globales que contiene tres clases más y una función principal (). La primera clase, "rectángulo", es una clase padre de las otras dos clases. Hemos declarado 3 variables públicas de doble tipo "H", "W" y "R" en él con 10, 4 y 3, respectivamente. Se ha declarado una variable constante de doble tipo "P" con un valor "PI" incorporado de Matemáticas. Aquí se ha definido un método virtual "área ()" de tipo de doble retorno que ha estado devolviendo el resultado de multiplicación de "H" y "W" a la función principal () de la clase de prueba, I.mi., El área de un rectángulo es, la altura se multiplica por ancho. La clase "cuadrado" se ha derivado de la clase "rectángulo". Esta clase está anulando el "área" de la función virtual desde su clase base y devuelve el resultado de multiplicación de "H" y "H", i I.mi., El área de un cuadrado es un lado multiplicado por el segundo lado o altura en altura.
Luego, tenemos un "círculo" de clase derivada que anula el "área" de la función virtual del rectángulo de clase base. Esta función devuelve el resultado de multiplicación de "P" y "R*r", i.mi., El área de un círculo está "Pi" multiplicada por el cuadrado de un radio. Se han definido e implementado tres clases en el código completamente. Ahora, es el giro de la función Main () de C# para comenzar su ejecución y ejecutar gradualmente las clases. Dentro del método Main () de la clase de prueba, hemos creado un objeto "O1" del rectángulo de clase principal en la primera línea usando el nombre de una clase con la "nueva" palabra clave.
Usando la clase rectángulo, hemos creado objetos O2 y O3 para clases derivadas Square and Circle, respectivamente. Aquí se han utilizado tres declaraciones de WriteLine () de la clase de consola para mostrar el área de rectángulo, cuadrado y círculo, respectivamente. Para calcular el área para tres formas, hemos utilizado los objetos respectivos de cada clase de forma. Estos objetos han estado llamando a sus respectivas funciones virtuales definidas en la clase del rectángulo y anuladas dentro de las clases derivadas, I.mi., Cuadrado y círculo.
Es hora de compilar este código C# recién creado en el shell con la instrucción de comando "MCS". Después de eso, use la instrucción de tiempo de ejecución mono para ejecutar el archivo "exe" que se ha generado como resultado de la compilación. En la ejecución de este archivo "exe" para el código, tenemos el área de rectángulo, cuadrado y círculo en nuestra pantalla, ya que hemos usado la función virtual en una clase y lo anulamos en las clases derivadas.
Conclusión
Hemos descrito cómo se puede usar una función virtual de C# simple dentro del código C# y anulado dentro de sus subclases. Hemos demostrado su trabajo en este artículo con la ayuda de algunos ejemplos. El primer ejemplo ilustra el uso de la función virtual dentro del programa de herencia única, mientras que el segundo ejemplo demuestra que con la ayuda de múltiples herencias. Así es como hemos demostrado cómo se puede usar un método simple para realizar múltiples cálculos con la definición única de una función en C#.