Olá,
Segue a minha resolução para o exercício. Para a classe Produto utilizei o seguinte código:
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 String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
@Override
public String toString() {
return "\nProduto: " + getNome() +
"\nPreço: R$ " + getPreco() +
"\nQuantidade: " + getQuantidade() +
"\nTOTAL: R$ " + (getQuantidade() * getPreco());
}
}
E para a classe filha ProdutoPerecivel:
public class ProdutoPerecivel extends Produto {
private String dataValidade;
public ProdutoPerecivel(String nome, double preco, int quantidade, String dataValidade) {
super(nome, preco, quantidade);
this.dataValidade = dataValidade;
}
public String getDataValidade() {
return dataValidade;
}
public void setDataValidade(String dataValidade) {
this.dataValidade = dataValidade;
}
@Override
public String toString() {
return super.toString() + "\nData de Validade: " + getDataValidade();
}
}
Ficando a implementação na Main:
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Produto> listaDeProdutos = new ArrayList<>();
var produto1 = new Produto("Lápis", 1.50, 100);
var produto2 = new Produto("Caneta", 2.50, 50);
var protudo3 = new Produto("Régua", 5.00, 10);
listaDeProdutos.add(produto1);
listaDeProdutos.add(produto2);
listaDeProdutos.add(protudo3);
System.out.printf("A lista tem %d itens.\n", listaDeProdutos.size());
System.out.printf("O último item da lista é: \n %s\n-----------\n", listaDeProdutos.get(2));
System.out.println(listaDeProdutos.toString());
var perecivel1 = new ProdutoPerecivel("Leite", 5.50, 10, "15/12/2024");
System.out.println(perecivel1);
}
}