El polimorfismo de tiempo de ejecución de Java no funciona con diferentes tipos de parámetros

El problema es que la firma del método a llamar se elige en tiempo de compilación . El compilador solo sabe que parentes de tipo Parent, por lo que la única firma compatible es add(double, double), porque ambos longs pueden ampliarse para ser doubles.

El Childmétodo add(long, long)es una sobrecarga, no una anulación, por lo que Childhereda el add(double, double)método y se llama.

Si agrega el add(long, long)método a la Parentclase, será una coincidencia exacta y se llamará sobre el add(double, double)método.

Respuesta 1

No puede acceder a métodos de subclases cuando utiliza una referencia de superclase. Se espera que el comportamiento descrito, ya que no existe un método add(long, long)dentro Parent, pero sólo un método add(double, double)(por lo tanto, no se sobreescribe, pero la sobrecarga adddentro Child).

Respuesta: 2

Quiero encontrar el nombre de la computadora del cliente en Java. Mi aplicación se ejecuta en la intranet. así que estoy usando el siguiente código public String findClientComputerName (solicitud HttpServletRequest) {String computerName = ...

Mi aplicación de Android necesita recuperar información sobre un contacto (es decir, número de teléfono y nombre). Escribí un código usando getContentResolver (). Query () En los resultados, veo que el nombre se está ...

Estoy buscando escribir un pequeño juego de texto basado en cliente-servidor que maneje múltiples conexiones de cliente y afecte de manera persistente el estado del juego. Me pregunto cuál sería la mejor manera de manejar múltiples ...

¿Cuál es la diferencia entre pasar en parámetro genérico alguna clase genérica con y sin su parámetro genérico? Ejemplo: clase genérica simple: clase pública Foo <T> {/*...*/} simple ...