Por que o tipo de retorno do mesmo nome-método deve ser o mesmo na subclasse Java?
Minha formação é em C ++. Eu sei o que está sobrecarregando e qual é a substituição. Quero perguntar se não quero substituir o método do pai e quero criar meu próprio método com tipo de retorno diferente e mesmo nome, por que o java não me permite fazer isso?
Exemplo:
class X{
public void k(){
}
}
public class Y extends X{
public int k(){
return 0;
}
}
Por que o java não aplica o conceito de ocultação aqui? classe média Y deve ocultar o método de X. qual é a razão por trás?
C ++ aplicando o conceito Hiding.
#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;
}