Oi, Laila! Como vai?
Ficou bem legal como você usou construtores, ArrayList<Produto>, o for-each e sobrescreveu toString() pra imprimir os itens com clareza, além de aplicar herança em ProdutoPerecivel.
Uma dica interessante para o futuro é criar um método para calcular o valor total do produto (preco * quantidade) e, no perecível, validar a data com LocalDate para saber se está vencido.
import java.time.LocalDate;
public class Produto {
private String nome;
private double preco;
private int quantidade;
public Produto(String nome, double preco, int quantidade) {
this.nome = nome;
this.preco = preco;
this.quantidade = quantidade;
}
public double valorTotal() {
return preco * quantidade;
}
}
public class ProdutoPerecivel extends Produto {
private LocalDate dataValidade;
public ProdutoPerecivel(String nome, double preco, int quantidade, String dataValidade) {
super(nome, preco, quantidade);
this.dataValidade = LocalDate.parse(dataValidade);
}
public boolean estaVencido(LocalDate hoje) {
return dataValidade.isBefore(hoje);
}
}
Esse codigo cria valorTotal() para calcular o total do item e estaVencido() para comparar a validade com uma data de referencia, sem precisar fazer conta manual no main.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!