Olá! Estou com uma dúvida, meu código está funcionando normal, meu código não estava compilando porque ele estava exigindo que eu adicionasse o método construtor:
public Conta(String nome, String agencia) {
this.nome = nome;
this.agencia = agencia;
}
da classe Conta em ContaCorrente, porque essa obrigatoriedade se eu, ao meu ver, não fiz essa exigência quando o construi em Conta?
Segue os códigos de Conta, ContaCorrente, Tributavel, SeguroDeVida e TestaTributavel:
public class Conta {
protected String nome;
public String getNome() {
return nome;
}
protected String agencia;
public String getAgencia() {
return agencia;
}
protected double saldo;
public double getSaldo() {
return saldo;
}
protected double deposito;
public double getDeposito() {
}
public void setDeposito(double valor) {
this.saldo += valor;
}
protected double saque;
public double guardaSaque;
public void setSaque(double valor) {
if (valor <= saldo) {
this.saldo -= valor;
this.guardaSaque = valor;
} else {
this.guardaSaque = valor;
}
}
public Conta(String nome, String agencia) {
this.nome = nome;
this.agencia = agencia;
}
class ContaCorrente extends Conta implements Tributavel {
public ContaCorrente(String nome, String agencia) {
super(nome, agencia);
}
@Override
public double calculaTributos() {
return this.getSaldo() * 0.01;
}
}
public interface Tributavel {
double calculaTributos();
}
class SeguroDeVida implements Tributavel {
public double calculaTributos() {
}
}
class TestaTributavel {
public static void main(String[] args) {
ContaCorrente cc1 = new ContaCorrente("Pablo", "abc123");
cc1.setDeposito(100);
System.out.println(cc1.calculaTributos());
Tributavel t = cc1;
System.out.println(t.calculaTributos());
}
}