6.Crie uma interface Vendavel com métodos para calcular o preço total de um produto com base na quantidade comprada e aplicar descontos. Implemente essa interface nas classes Produto e Servico, cada uma fornecendo a sua própria lógica de cálculo de preço.
Vendavel
public interface Vendavel {
double precoFinal(int quantidade);
void aplicarDesconto(double percentual, int quantidade);
}
Serviço
public class Servico implements Vendavel {
private String descricao;
private double precoPorHora;
public Servico(String descricao, double precoPorHora) {
this.descricao = descricao;
this.precoPorHora = precoPorHora;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public double getPrecoPorHora() {
return precoPorHora;
}
public void setPrecoPorHora(double precoPorHora) {
this.precoPorHora = precoPorHora;
}
@Override
public double precoFinal(int horas) {
return precoPorHora * horas;
}
@Override
public void aplicarDesconto(double percentual, int horas) {
if (horas > 5) {
double desconto = precoPorHora * (percentual / 100);
precoPorHora -= desconto;
}
}
}
Produto
public class Produto implements Vendavel {
private String nome;
private double precoUnitario;
public Produto(String nome, double precoUnitario) {
this.nome = nome;
this.precoUnitario = precoUnitario;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public double getPrecoUnitario() {
return precoUnitario;
}
public void setPrecoUnitario(double precoUnitario) {
this.precoUnitario = precoUnitario;
}
@Override
public double precoFinal(int quantidade) {
return precoUnitario * quantidade;
}
@Override
public void aplicarDesconto(double percentual, int quantidade) {
if (quantidade > 10) {
double desconto = precoUnitario * (percentual / 100);
precoUnitario -= desconto;
}
}
}
Main
public class Main {
public static void main(String[] args) {
Produto produto = new Produto("Notebook", 3000.0);
System.out.println("Preço do produto por unidade: R$" + produto.precoFinal(1));
produto.aplicarDesconto(10, 15);
System.out.println("Preço final do produto após desconto (15 unidades): R$" + produto.precoFinal(15));
Servico servico = new Servico("Desenvolvimento de Software", 150.0);
System.out.println("Preço do serviço por hora: R$" + servico.precoFinal(1));
servico.aplicarDesconto(10, 6);
System.out.println("Preço final do serviço após desconto (6 horas): R$" + servico.precoFinal(6));
}
}