Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida no Exercício 3

Estou com dúvidas em relação a as classes filhas na hora de montar a classe teste. Preciso utilizar o comando [super.metodo()] para chamar um método da classe mãe? Como utilizar corretamente esse recurso?

package allura.estudos;

public class Conta{
    protected String banco;
    protected String cpfTitular;
    protected String nomeTitular;
    protected long agencia;
    protected String numeroConta;
    protected double saldo;

    public Conta(){
        this.banco = banco;
        this.cpfTitular = cpfTitular;
        this.nomeTitular = nomeTitular;
    }

    public String getBanco(String banco){
        return banco;
    }
    public void setBanco(String banco){
        this.banco = banco;
    }

    public String getCpfTitular(String cpfTitular){
        return cpfTitular;
    }
    public void setCpfTitular(String cpfTitular){
        this.cpfTitular = cpfTitular;
    }

    public String getNomeTitular(String nomeTitular){
        return nomeTitular;
    }
    public void setNomeTitular(String nomeTitular){
        this.nomeTitular = nomeTitular;
    }

    public long getAgencia(long agencia){
        return agencia;
    }
    public void setAgencia(long agencia){
        this.agencia = agencia;
    }

    public String getNumeroConta(String numeroConta){
       return numeroConta;
    }
    public void setNumeroConta(String numeroConta){
       this.numeroConta = numeroConta;
    }

    public double getSaldo(double saldo){
        return saldo;
    }
    public void setSaldo(double saldo){
        this.saldo = saldo;
    }

   public void atualiza(double taxa) {
            this.saldo += this.saldo* taxa;
            System.out.println("Saldo + taxa:  " + saldo + taxa);
    }

    class ContaCorrente extends Conta {
             @Override
             public void atualiza(double taxa) {
                this.saldo += this.saldo * taxa * 2;
            }
    }    

    class ContaPoupanca extends Conta {
        @Override
        public void atualiza(double taxa) {
            this.saldo += this.saldo * taxa * 3;
        }

        public void deposita(double valor) {
            this.saldo += valor - 0.10;
        }
    }

    void mostraDados(){
        System.out.println("Banco: " + this.banco);
        System.out.println("Cpf do Titular da conta: "+ this.cpfTitular);
        System.out.println("NOME do Titular da conta: "+ this.nomeTitular);
        System.out.println("Agencia: " + this.agencia);
        System.out.println("Conta: " + this.numeroConta);
        System.out.println("Saldo: " +this.saldo);
        System.out.println("\n");
    }
}

package allura.estudos;

public class TesteConta{
        public static void main(String[] args) {
            /*Conta c1  = new Conta();
            c1.setBanco("237 - Bradesco");
            c1.setCpfTitular("098.567.132-90");
            c1.setNomeTitular("Maria da Silva");
            c1.setAgencia(1090);
            c1.setNumeroConta("6715-8");
            c1.setSaldo(1);
            c1.mostraDados();
            c1.atualiza();*/

            ContaCorrente cc1 = new ContaCorrente();
            cc1.setBanco("344- Itau");
            cc1.setCpfTitular("657.635.132-78");
            cc1.setNomeTitular("Carlos");
            cc1.setAgencia(1234);
            cc1.setNumeroConta("9028-2");
            cc1.setSaldo(1000.0);
            cc1.super.mostraDados();
            cc1.atualiza();

     }
}
1 resposta
solução!

Olá Simone, no seu caso não é necessário chamar o super a partir da classe teste, ao invés você pode acrescentar a palavra reservada public na declaração do método mostraDados da classe Conta e ele ficará acessível ao teste.

public void mostraDados(){
        System.out.println("Banco: " + this.banco);
        System.out.println("Cpf do Titular da conta: "+ this.cpfTitular);
        System.out.println("NOME do Titular da conta: "+ this.nomeTitular);
        System.out.println("Agencia: " + this.agencia);
        System.out.println("Conta: " + this.numeroConta);
        System.out.println("Saldo: " +this.saldo);
        System.out.println("\n");
    }

Bons estudos.