Eu estava futucando aqui aí fiz o seguinte
superclasse
public void escrever()
{
System.out.println( "Metodo escrever " + getClass() );
}
subclasse
public String escrever()
{
return "Metodo escrever2 " + getClass();
}
Ele da erro. Mas se eu faço isso na subclasse:
public int escrever( int x )
{
System.out.println( "Metodo escrever2 " + getClass() );
return 1;
}
Ele funciona. Por que isso ? A assinatura do método, (me digam se estiver errado), não seria o seu [tipo de acesso][tipo de retorno] nome( parametros), ou sua assinatura seria somente os seus parametros fazendo com isso que não se possa alterar o método. Mas isso também não seria um overload ? Por que a subclasse já teria o método, herdado da superclasse, e com esse novo método com tipo de retorno String ele seria outro método.
Não entendi e me desculpem pelo post grande.
Obrigado.