los diferencia clave entre la anulación y la sobrecarga en C # es que el enlace de la llamada al método anulado a su definición ocurre en tiempo de ejecución, mientras que el enlace de la llamada al método sobrecargado a su definición ocurre en tiempo de compilación.
C # es un lenguaje de programación de propósito general desarrollado por Microsoft. La principal ventaja de C # es que admite la programación orientada a objetos (OOP). Un pilar de la OOP es el polimorfismo. Da a un objeto tener múltiples comportamientos. Existen dos tipos de Polimorfismo conocidos como anulación y sobrecarga. Este artículo analiza la diferencia entre la invalidación de método y la sobrecarga en C #.
1. Resumen y diferencia clave
2. Lo que está anulando en C #
3. ¿Qué es la sobrecarga en C #
4. Similitudes entre anular y sobrecargar en C #
5. Comparación lado a lado: Anulación frente a sobrecarga en C # en forma tabular
6. Resumen
Hay otro concepto importante en la POO es la herencia. Es utilizar atributos y métodos de la clase ya existente. Mejora la reutilización del código. La clase ya existente es la clase base, y la nueva clase se conoce como la clase derivada. En la anulación del polimorfismo, debe haber una clase base y una clase derivada. El enlace de la llamada al método anulado a la definición ocurre en tiempo de ejecución. Un ejemplo es el siguiente.
Figura 01: Programa C # con anulación
Según el programa anterior, la clase Forma es la clase base y contiene el método de visualización. Class Rectangle y Triangle son clases derivadas. Estas clases derivadas también tienen el mismo método de visualización con sus propias implementaciones..
Primero, se crea la variable de referencia obj. Apunta al objeto Shape. Por lo tanto, el método de visualización de la clase Shape se ejecutará. Luego, la variable de referencia apunta al objeto Rectangle. Por lo tanto, se ejecutará el método de visualización de la clase Rectángulo. Finalmente, la variable de referencia apunta al objeto Triángulo. Por lo tanto, el método de visualización de la clase Triángulo se ejecutará. El método de visualización de la clase base se invalida por los métodos de visualización de las clases derivadas.
El método para ejecutar se decide en tiempo de ejecución. La clase Shape se escribe con la palabra clave 'virtual'. Las clases Rectangle y Triangle están escritas con la palabra clave 'override'. Si estas palabras clave no se utilizan, la salida imprimirá el contenido del método de visualización de la clase Shape para todos.
En la sobrecarga, múltiples métodos tienen el mismo nombre pero con diferentes parámetros. Los parámetros pueden ser de diferentes tipos. Los métodos también pueden tener un número diferente de parámetros. La sobrecarga de métodos se produce en la misma clase. El enlace de los métodos sobrecargados a la definición ocurre en tiempo de compilación. Consulte el siguiente programa de C #.
Figura 02: Programa C # con sobrecarga
De acuerdo con el programa anterior, la clase A tiene dos métodos con el mismo nombre llamado suma. Tienen diferentes tipos de parámetros. En el programa principal, se crea un objeto de A. La suma (2,3) invocará el método de suma con enteros. La suma (5.1, 7.94) invocará el método de suma con valores dobles. Ambos métodos tienen el mismo nombre y un mismo número de parámetros. Pero los tipos de parámetros son diferentes. El método requerido se llama en consecuencia. La sobrecarga también puede ocurrir si los nombres de los métodos y los tipos de parámetros son iguales pero el número de parámetros es diferente.
Anulación frente a la sobrecarga en C # | |
La anulación en C # es proporcionar una implementación específica en un método de clase derivado para un método que ya existe en la clase base. | La sobrecarga en C # es crear múltiples métodos con el mismo nombre con diferentes implementaciones. |
Parámetros | |
En la sustitución de C #, los métodos tienen el mismo nombre, los mismos tipos de parámetros y el mismo número de parámetros. | En C # Overloading, los métodos tienen el mismo nombre pero un número diferente de parámetros o un tipo diferente de parámetros. |
Ocurrencia | |
En C #, la anulación se produce dentro de la clase base y la clase derivada. | En C #, la sobrecarga ocurre dentro de la misma clase. |
Tiempo de encuadernación | |
El enlace de la llamada al método anulado a su definición ocurre en tiempo de ejecución. | El enlace de la llamada del método sobrecargado a su definición ocurre en tiempo de compilación. |
Sinónimos | |
La anulación se llama como polimorfismo de tiempo de ejecución, polimorfismo dinámico o encuadernación tardía. | La sobrecarga se llama como polimorfismo de tiempo de compilación, polimorfismo estático o unión temprana. |
La anulación y la sobrecarga son dos tipos de polimorfismo. La diferencia entre anular y sobrecargar en C # es que el enlace de la llamada al método anulado a su definición ocurre en tiempo de ejecución, mientras que el enlace de la llamada al método sobrecargado a su definición ocurre en tiempo de compilación.
1.Kumar, Mukesh. C # Corner. Disponible aquí
2.tutorialspoint.com. "C # polimorfismo". TutorialesPoínt. Disponible aquí
3.tutorialspoint.com. "Tipos de datos C #". TutorialsPoint , Disponible aquí