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?