Nos exercícios de Produtos, criando objetos e adicionando-os no ArrayList, eu criei uma classe Produto com (Nome, preço e quantidade), e uma classe ProdutoPerecivel, que recebe tambem os valores da classe Produto de nome, preço e quantidade, e um adicional de data, visto que esse construtor e classe é usado somente para produtos que têm data de validade.
public Produto(String nome, double preco, int quantidade){ this.nome = nome; this.preco = preco; this.quantidade = quantidade; }
public ProdutoPerecivel(String nome, double preco, int quantidade, String dataDeValidade) { super(nome, preco, quantidade ); this.dataDeValidade = dataDeValidade; }
Na hora de imprimir os valores do array, que contem produtos com e sem data de validade, eu adicionei um toString Override em cada classe para determinar o return que vai sair de cada classe. Porém, na principal, eu usei um for pra puxar cada Produto de cada index, junto do System.out.print, que usava o get(i). Nisso, eu percebi que a saida era igual o toString que coloquei de cada classe, ele identificava a classe do objeto do Produto e puxava a saida do toString que eu coloquei, mas em nenhum momento eu usei .toString para fazer essa saida que eu indiquei em cada classe. Por quê isso acontece? Acho que de pra entender a minha duvida hahaha