No momento da iteração no ArrayList quando executamos o sysout no elemento que é do tipo Object ele utilizou o método da classe mais específica toString() ContaCorrente, não deveria executar o método toString() da classe Object ?
No momento da iteração no ArrayList quando executamos o sysout no elemento que é do tipo Object ele utilizou o método da classe mais específica toString() ContaCorrente, não deveria executar o método toString() da classe Object ?
Boa tarde Rodrigo,
Então, a partir do momento que você sobrescreve o método da classe Object, ele não é mais utilizado, caso você não tenha o toString() em sua classe ContaCorrente, ele chamaria o da classe Object que é mais genérico.
Rodrigo, se você quisesse chamar o toString() da classe Object, você teria que fazer a chamada explícita a ele dentro do toString() da classe ContaCorrente.
Por exemplo:
public class ContaCorrente {
//código do construtor e outros métodos
@Override
public String toString() {
return super.toString() + "texto da classe Conta Corrente";
}
}
Se você sobrescreve o método da classe, o método da classe filha que é mais específico é o que será chamado. Para utilizar o método toString da classe pai você têm que usar a palavra reservada super.
super.toString();