2011-08-18 13 views
5

Cuando la clase padre tiene un método add con 2 parámetros, ¿Si añadimos el nuevo método add con 3 parámetros en la clase secundaria, ¿debemos llamarlo como sobrecarga?Aclaración sobre la sobrecarga

Gracias de antemano.

+0

Sí. En contraste con la anulación. – Ingo

Respuesta

6

Sí, dado que el método con dos parámetros es heredado por la subclase, se dice que el método con tres parámetros es un método de sobrecarga.

class A 
    add(param1, param2) 

class B 
    add(param1, param2)   <-- inherited 
    add(param1, param2, param3) <-- overloading the above method 

Una cita de la pista oficial sobre Overriding and Hiding Methods:

Nota: En una subclase, que pueden sobrecargar los métodos heredados de la superclase. Dichos métodos sobrecargados no ocultan ni anulan los métodos de la superclase; son métodos nuevos, exclusivos de la subclase.

(Como probablemente ya descubierto, el método con tres clases no es un método de alteración temporal.)

3

La sobrecarga es cuando los métodos tienen el MISMO NOMBRE pero DIFERENTE FIRMA. Anulación: cuando los métodos tienen NOMBRES IDÉNTICOS y FIRMA IDÉNTICA.

5

Sí, esto es una sobrecarga. Sería una sobrecarga incluso si el método estuviera en la misma clase que el método con dos parámetros.

Tenga en cuenta que cuando hay diferentes números de parámetros (y no hay parámetros varargs) la sobrecarga es razonablemente simple. Se vuelve mucho más complicado cuando tiene métodos con el mismo número de parámetros: en ese punto, el compilador debe elegir el "mejor" método de los métodos candidatos aplicables.

en cuenta también que sobrecarga se determina en tiempo de compilación, mientras que el que se ejecuta override se determina en tiempo de ejecución basándose en el tipo real del objeto se llama al método sobre.

1

Si el nombre del método ya existe pero los parámetros son diferentes, entonces sí, esto es una sobrecarga.

2

Sí definitivamente una sobrecarga y una buena característica de la herencia.

0

sí ... es un método de sobrecarga, incluso si el método se encuentra en la misma clase.

PD: asumir el nuevo método con tres parámetros tiene idéntico nombre y tipo de retorno

Cuestiones relacionadas