Poo java

classe conta:

public class Conta  {
    private String dono;
    private float saldo;
    public String tipo;
    private boolean status;
    
    public void abrirconta(String t){
        this.setTipo(t);
        this.setStatus(true);
        this.setSaldo(100);     
    }
    
    public void tributa(float v){
        if (this.getTipo()== "CC") {
           v = this.getSaldo()- ( /100 * this.getSaldo());
        } else {
        }
    }

interface:

public interface Tributavel {
    
    public void taxa(int taxafixa);
    
}

conta corrente:

public class ContaCorrente extends Conta implements Tributavel {
    public int taxfix;
    
    @Override
    public void taxa(int taxafixa) {
     taxafixa= 1;
     this.taxfix= taxafixa;
    }

    public int getTaxfix() {
        return taxfix;
    }

    public void setTaxfix(int taxfix) {
        this.taxfix = taxfix;
    }
}

bom dia , não estou conseguido fazer o TAXFIX receber na classe CONTA.

eu queria assim:

public void tributa(float v){
    if (this.getTipo()== "CC") {
       v = this.getSaldo()- (THIS.TAXFIX  /100 * this.getSaldo());     
    } else {
    }
}

mas não está dando certo
eu tentei de tudo nesse taxfix: this,get,set é nada

public class ContaCorrente extends Conta implements Tributavel {
public int taxfix;

@Override
public void taxa(int taxafixa) {
 this.taxfix =taxafixa;
   
}

Qual a ideia dessa propriedade taxfix? Cada tipo de conta terá o seu?

Não é bom que uma classe pai dependa de algo da classe filha. Esse é um dos grandes problema ao usar herança.

No seu caso, seria melhor que cada tipo de conta tenha a capacidade de tributar (mesmo que vc mantenha a lógica na classe pai). Uma forma de fazer isso é com sobrecarga de método.

a TAXFIX será o resultando do calculo, e irá para classe CONTA
: this.getSaldo()- (THIS.TAXFIX /100 * this.getSaldo()); // calculo da porcentagem

assim

não entendi direito como faz isso

public int taxfix;

@Override
public void taxa(int taxafixa) {
 this.taxfix =taxafixa;
   
}

public void desconto() {
    v = this.getSaldo() - (this.taxfix /100 * this.getSaldo());
    
}

meu amigo disse para igual assim
mas ele ainda não falou tudo então está imcompleto

Entendi. Mas e o método tributar?


Ah sim, saquei. Essa forma é como eu estava falando. Melhor deixar isso como responsabilidade da classe ContaCorrente.

seria o calculo

classe conta corrente: this.taxfix= 1;

classe conta: this.getSaldo() - (this.taxfix /100 * this.getSaldo());

meu primeiro teste seria assim. mas não aparecer o taxfix . quanto eu coloco this.

mas como faço isso. eu criei um método para calcular como mostra na minha ultima postagem

classe conta corrente

classe conta

Toda tipo de conta que existir no sistema será tributável?

só conta corrente e segurodevida

Então não seria bom ter o método tributar na classe Conta. Deixa apenas nas classes ContaCorrente e SeguroVida.

assim:

public class ContaCorrente extends Conta implements Tributavel {
    public int taxfix;
    
    @Override
    public void taxa(int taxafixa) {
     this.taxfix =taxafixa;
       
    }
 
      public void tributa(float v){
       
        if (this.getTipo()== "CC") {
              v= this.getSaldo() - (this.taxfix /100 * this.getSaldo());
        } else {
            System.out.println("error");
        }
    }

ou:

public class ContaCorrente extends Conta implements Tributavel {
    public int taxfix;
    
    @Override
    public void taxa(int taxafixa) {
     this.taxfix =taxafixa;
       
    }
 
      public void tributa(float v){
       this.taxfix= 1;
        if (this.getTipo()== "CC") {
              v= this.getSaldo() - (this.taxfix /100 * this.getSaldo());
        } else {
            System.out.println("error");
        }
    }

Qual a diferença nos dois jeitos que postou?

this.taxfix=1;

na segunda foto

precisa disso ou não?