Estou estudando para fazer um pequeno projeto acadêmico, que envolva diversos assuntos de POO, como encapsulamento, classe abstrata, herança, polimorfismo, sobrecarga, interface, tratamento de exceções, collections e swing. Estou com uma dúvida na parte de fazer a herança a partir de uma classe abstrata, na hora de criar o construtor na classe filha, tento herdar os atributos da classe mãe com o comando ‘super’, mas dá erro.
Preciso de ajuda para identificar este erro
abstract class Oculos {
private String marca;
private String modelo;
private double desconto;
private double juros;
private int parcelas;
private double pagamento;
public abstract void imprimePagamento(); // imprime o valor final do pagamento
public abstract void imprimeDadosOculos(); // imprime a marca e o modelo
public Oculos(){
setMarca(marca);
setModelo(modelo);
setDesconto(desconto);
setJuros(juros);
setParcelas(parcelas);
setPagamento(pagamento);
}
/**
* @return the marca
*/
public String getMarca() {
return marca;
}
/**
* @param marca the marca to set
*/
public void setMarca(String marca) {
this.marca = marca;
}
/**
* @return the modelo
*/
public String getModelo() {
return modelo;
}
/**
* @param modelo the modelo to set
*/
public void setModelo(String modelo) {
this.modelo = modelo;
}
/**
* @return the desconto
*/
public double getDesconto() {
return desconto;
}
/**
* @param desconto the desconto to set
*/
public void setDesconto(double desconto) {
this.desconto = desconto;
}
/**
* @return the juros
*/
public double getJuros() throws ExceptionJuros{
if(juros < 2.5){
throw new ExceptionJuros();
}
return juros;
}
/**
* @param juros the juros to set
*/
public void setJuros(double juros) {
this.juros = juros;
}
/**
* @return the parcelas
*/
public int getParcelas() throws ExceptionParcelas{
if(parcelas < 0 || parcelas > 12){
throw new ExceptionParcelas();
}
return parcelas;
}
/**
* @param parcelas the parcelas to set
*/
public void setParcelas(int parcelas) {
this.parcelas = parcelas;
}
/**
* @return the pagamento
*/
public double getPagamento() {
return pagamento;
}
/**
* @param pagamento the pagamento to set
*/
public void setPagamento(double pagamento) {
this.pagamento = pagamento;
}
}
Segue a classe filha
package projetootica_andreanivaldo;
public class OculosGrau extends Oculos implements PadraoOtica {
private double grau, precoArmacao, precoGrau;
public OculosGrau(String marca, String modelo, double desconto, double juros, int parcelas,
double pagamento, double grau, double precoArmacao, double precoGrau){
super(marca, modelo, desconto, juros, parcelas, pagamento);
setGrau(grau);
setPrecoGrau(precoGrau);
setPrecoArmacao(precoArmacao);
}
@Override
public void imprimePagamento() {
}
@Override
public void imprimeDadosOculos() {
}
/**
* @return the grau
*/
public double getGrau() {
return grau;
}
/**
* @param grau the grau to set
*/
public void setGrau(double grau) {
this.grau = grau;
}
/**
* @return the precoArmacao
*/
public double getPrecoArmacao() {
return precoArmacao;
}
/**
* @param precoArmacao the precoArmacao to set
*/
public void setPrecoArmacao(double precoArmacao) {
this.precoArmacao = precoArmacao;
}
/**
* @return the precoGrau
*/
public double getPrecoGrau() {
return precoGrau;
}
/**
* @param precoGrau the precoGrau to set
*/
public void setPrecoGrau(double precoGrau) {
this.precoGrau = precoGrau;
}
}
haha