Olá a todos do Forum, dêm uma olhada neste código:
public class Conta {
private int numero;
public void setNumero(int numero) {
this.numero = numero;
}
public int getNumero(int numero) {
return this.numero;
}
public boolean equals(Object obj) { //A dúvida está aqui
ContaCorrente c=(ContaCorrente) obj;
if( (this.numero ==c.numero() )
return true;
else
return false;
}
}
public class Principal {
public static void main(String[] args) {
ContaCorrente cc= new ContaCorrente ();
ContaCorrente cc1= new ContaCorrente ();
cc.setNumero(10);
cc1.setNumero(10);
if(cc.equals(cc1))
System.out.println("são iguais");
else
System.out.println("São diferentes");
}
}
A minha dúvida é a seguinte, eu rescreevi o metodo equals da classe Conta, para comparar os números das Contas. Mas porque que na passagem de parâmetro eu não precisei de um casting de referência, ou seja transforma de Object para Conta, e dentro do método eu preciso transforma de Object, para Conta com o casting? O java converte automaticamente ?
Se alguém puder me dar uma explicação melhor, sobre casting de referências, eu agradeço.
Att