Diferencia entre anular y sobrecargar en C

Tabla de contenido:

Diferencia entre anular y sobrecargar en C
Diferencia entre anular y sobrecargar en C

Video: Diferencia entre anular y sobrecargar en C

Video: Diferencia entre anular y sobrecargar en C
Video: 66. Programación en Java || POO || Sobrecarga de Métodos 2024, Mes de julio
Anonim

Diferencia clave: anulación frente a sobrecarga en C

La diferencia clave 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.

C es un lenguaje de programación de propósito general desarrollado por Microsoft. La principal ventaja de C es que admite Programación Orientada a Objetos (POO). Un pilar de la programación orientada a objetos es el polimorfismo. Le da a un objeto tener múltiples comportamientos. Hay dos tipos de polimorfismo conocidos como anulación y sobrecarga. Este artículo analiza la diferencia entre la anulación y la sobrecarga de métodos en C.

¿Qué es anular en C?

Hay otro concepto importante en OOP que es la herencia. Es usar 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 clase derivada. Al anular el 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.

Diferencia entre anular y sobrecargar en C
Diferencia entre anular y sobrecargar en C

Figura 01: Programa C con anulación

Según el programa anterior, la clase Shape 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 la misma visualización de métodos con sus propias implementaciones.

Primero, se crea la variable de referencia obj. Apunta al objeto Forma. Entonces, se ejecutará el método de visualización de la clase Shape. Luego, la variable de referencia apunta al objeto Rectangle. Entonces, se ejecutará el método de visualización de la clase Rectangle. Finalmente, la variable de referencia apunta al objeto Triángulo. Entonces, se ejecutará el método de visualización de la clase Triangle. El método de visualización de la clase base se reemplaza por los métodos de visualización de las clases derivadas.

El método a ejecutar se decide en tiempo de ejecución. La clase Shape está escrita con la palabra clave 'virtual'. Las clases Rectángulo y Triángulo se escriben con la palabra clave "anular". Si no se utilizan estas palabras clave, la salida imprimirá el contenido del método de visualización de la clase Shape para todos.

¿Qué es la sobrecarga en C?

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 ocurre en la misma clase. El enlace de métodos sobrecargados a la definición ocurre en tiempo de compilación. Consulte el siguiente programa C.

Diferencia clave entre anular y sobrecargar en C
Diferencia clave entre anular y sobrecargar en C

Figura 02: Programa C con sobrecarga

Según el programa anterior, la clase A tiene dos métodos con el mismo nombre llamados sum. 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 números enteros. La suma (5.1, 7.94) invocará el método de suma con valores dobles. Ambos métodos tienen el mismo nombre y el 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 los mismos pero el número de parámetros es diferente.

¿Cuál es la similitud entre anular y sobrecargar en C?

Tanto la anulación como la sobrecarga en C son tipos de polimorfismo

¿Cuál es la diferencia entre anular y sobrecargar en C?

Anulación frente a sobrecarga en C

Anular en C es proporcionar una implementación específica en un método de clase derivada 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 C Overriding, los métodos tienen el mismo nombre, los mismos tipos de parámetros y el mismo número de parámetros. En la sobrecarga de C, 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 vinculación
La vinculación de la llamada al método anulado a su definición ocurre en tiempo de ejecución. La vinculación de la llamada al método sobrecargado con su definición ocurre en tiempo de compilación.
Sinónimos
La anulación se denomina polimorfismo en tiempo de ejecución, polimorfismo dinámico o enlace tardío. La sobrecarga se denomina polimorfismo en tiempo de compilación, polimorfismo estático o enlace anticipado.

Resumen: anulación frente a sobrecarga en C

Overriding y Overloading 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.

Recomendado: