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 ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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();