Recomendado, 2024

La Elección Del Editor

Diferencia entre la sobrecarga de método y la anulación

Método de sobrecarga
La sobrecarga de métodos, también conocida como sobrecarga de funciones o polimorfismo de tiempo de compilación, es un concepto de tener dos o más métodos con el mismo nombre pero una firma diferente en el mismo ámbito. Hay muchos lenguajes de programación que admiten esta función: Ada, C ++, C #, D y Java.

Ejemplo de sobrecarga de métodos en C #

clase OverloadShapes {float Polygon (int radio, float pi) {float circleArea = pi * radius * radius; } int Polígono (longitud int, anchura int) {int rectangleArea = longitud * anchura; } int Polygon (int side) {int squareArea = side * side; }}
1 2 3 4 5 6 7 8 9 10 11 12 13 14clase OverloadShapes {float Polygon (int radio, float pi) {float circleArea = pi * radius * radius; } int Polígono (longitud int, anchura int) {int rectangleArea = longitud * anchura; } int Polygon (int side) {int squareArea = side * side; }}

Como se muestra en el ejemplo anterior, el método 'Polígono' se sobrecarga 3 veces con una firma de método diferente, es decir, el tipo o el número de parámetros son diferentes.

Método Anulando
La anulación del método, también conocida como anulación de la función o polimorfismo de tiempo de ejecución, es una característica de la POO que permite a una clase secundaria proporcionar su propia implementación al método definido en la clase primaria. La implementación en la clase secundaria anula la definición del método en la clase base, siempre que el método en la clase secundaria tenga el mismo nombre, firma y tipo de retorno.

Ejemplo de anulación de método en C #

class Source1 {public void draw () {Console.Writeline ("Estoy en la clase Source1"); }} clase Source2 extiende Source1 {public void draw () {Console.Writeline ("Estoy en la clase Source2"); }}
1 2 3 4 5 6 7 8 9 10clase Fuente1 {public void draw () {Console. Línea de Escritura ("Estoy en la clase Fuente1"); }} clase Source2 extiende Source1 {public void draw () {Console. Línea de escritura ("Estoy en la clase Source2"); }}

Aquí, el método de dibujo en la clase Source2 anula el método de dibujo definido en la clase Source1.

Diferencia entre la sobrecarga de métodos y la invalidación de métodos

  1. En los métodos de sobrecarga de métodos debe tener una firma diferente. En el método, los métodos de reemplazo deben tener la misma firma.
  2. La sobrecarga de funciones es "agregar" o "extender" más al comportamiento del método. La anulación de funciones es "cambiar" por completo o "redefinir" el comportamiento de un método.
  3. El método de sobrecarga se utiliza para lograr el polimorfismo de tiempo de compilación; El método de anulación se utiliza para lograr el polimorfismo en tiempo de ejecución.
  4. En la sobrecarga de métodos / funciones, el compilador sabe qué objeto asignado a qué clase en el momento de la compilación, pero en el método que anula esta información no se conoce hasta el tiempo de ejecución.
  5. La sobrecarga de funciones tiene lugar en la misma clase, mientras que la sustitución se realiza en una clase derivada de una clase base.
Top