How to change the contents of an inherited class variable?

0

I am developing a system of transactions for methodological purposes.

I have the following classe mãe called Conta :

public class Conta {

    private double _saldo = 0;
    private String _nome;
    private int _idade;
    private int  numeroConta;  
    protected String message;

    Conta(int numeroConta, double saldo) {
        this._saldo += saldo;
        this.numeroConta = numeroConta;
    }
    public String getNome() {
        return "Nome: " + this._nome;
    }    
    public void setNome(String nome) {
        this._nome = nome;
    }
    public int getIdade() {        
        return this._idade;
    }
    public void setIdade(int idade) {
        this._idade = idade;
    }
   public void setDepositar(double money){
        this._saldo += money;
    }
    public void setSacar(double money){
        if (money <= this._saldo) {
            this._saldo -= money;
            this.message = "Saque efetuado!";
           System.out.println(message);
        }      
        else System.out.println("Recusado! Você não possui saldo suficiente!");

    }   
    public double getSaldo() {        
        return  this._saldo;            
    }       
}

In the setSacar method I make a check and depending on the result it prints a message to the user.

I have the following classe filha called Cartao :

public class Cartao extends Conta {
private int _numeroCartao;
private boolean status  = true;

  Cartao(int numeroConta, double saldo) {
      super(numeroConta,saldo);
  }
public boolean cartaoAtivo(boolean status) {
    if (status) return this.status = true;           

    else return this.status = false;
}
public void comprarProduto(double valor) {
    if (this.status) {            
        this.setSacar(valor); //chamada do metodo
          super.message ="Compra realizada!";// quero alterar essa frase           
    }     
    else System.out.println("Cartão inativo. Compra não realizada!");
}

public void setNumeroCartao(int numero) {
    this._numeroCartao = numero;
}

public int getNumeroCartao() {
    return this._numeroCartao;
}   }

And in my class main I'm printing the following:

public class Main {

    public static void main(String[] args) {        
          Cartao c1 = new Cartao(1,500);
          c1.cartaoAtivo(true);
          c1.setNumeroCartao(1);
          c1.comprarProduto(100);//realizando a compra

          c1.setSacar(400);//realizando o saque 
          System.out.println("Seu saldo: R$ " + c1.getSaldo());
          System.out.println("Número do cartão: "+ c1.getNumeroCartao());
    }
}

What does it have to do:

Saque efetuado!
Saque efetuado!
Seu saldo: R$ 0.0
Número do cartão: 1

The question is: I changed the display phrase in the child class to Compra realizada! but on output, the sentence continues to be pulled from classe mãe .

Does anyone know what I'm doing wrong?

    
asked by anonymous 28.02.2018 / 16:39

0 answers