¿Por qué el tipo de retorno del método con el mismo nombre debería ser el mismo en la subclase de Java?
Mi fondo es C ++. Sé lo que está sobrecargando y cuál es la anulación. Quiero preguntar si no quiero anular el método del padre y quiero hacer mi propio método con un tipo de retorno diferente y el mismo nombre, ¿por qué Java no me permite hacer esto?
Ejemplo:
class X{
public void k(){
}
}
public class Y extends X{
public int k(){
return 0;
}
}
¿Por qué Java no aplica el concepto de ocultación aquí? la clase media Y debería ocultar el método de X. ¿Cuál es la razón detrás?
C ++ aplicando el concepto de ocultación.
#include <iostream>
class A{
public:
void k(){
std::cout << "k from A";
}
};
class B:public A{
public:
int k(){
std::cout << "k from B";
return 0;
}
};
int main(){
B obj;
obj.k();
return 0;
}