覆盖父方法无法正常工作

时间:2020-02-26 23:30:18

标签: java

我需要计算对象葡萄酒的税,我已经在父类中计算了税,现在我需要在类葡萄酒中计算了税,因为我现在有了这个超级税,因此我需要额外的税。

super.novaCijena(cijenaPr*ALC_TAX);

但我需要像这样

super.novaCijena(cijenaPr)*ALC_TAX;

这是我的当前代码

主班

 public static void main(String[] args) 
    {
        Chocolate c= new Chocolate("Crna Čokolada", 10.5, 1254120, 200);
        System.out.println(c);
        
        Wine w= new Wine("Crno vino", 5.00, 0125452, 25);
        System.out.println(w);
    }
    
    

产品类别

public abstract class Product 
{
    public String nazivProizvoda;
    public int barKod;
    public double cijenaPr;
    public final double pDV=1.2;
    //public double novaCijena;
        
    public Product (String nazivProizvoda, int barKod, double cijenaPr)
    {
        this.nazivProizvoda=nazivProizvoda;
        this.barKod=barKod;
        this.cijenaPr=cijenaPr;
    }


    public double novaCijena(double cijenaPr)
    {
         double novaCijena=this.cijenaPr*pDV;
        return novaCijena;
    }
    
    
    @Override
    public String toString()
    {
        return "Proizvod: " + this.nazivProizvoda + ", " + "cijena: " + novaCijena(cijenaPr)
               + ", " + "bar kod: " + this.barKod;
    }

和葡萄酒课

public class Wine extends Product
{
    public double zapremina;
    public final double ALC_TAX=1.1;
    //public double pDV;
    public Wine (String nazivProizvoda, double cijenaPr, int barKod, double zapremina)
    {

        
        super(nazivProizvoda,barKod,cijenaPr);
        this.zapremina=zapremina;
        //this.pDV=pDV;
    }

    @Override
    public String toString()
    {
 
        super.novaCijena(cijenaPr*ALC_TAX);
            return super.toString() + ", " + "zapremina: " + zapremina + " ml.";
    }
}

1 个答案:

答案 0 :(得分:1)

我认为您想要在Wine中使用重写方法:

@Override
public double novaCijena(double cijenaPr) {
    return super.novaCijena(cijenaPr) * ALC_TAX;
}

然后在Wine中调用this.novaCijena(cijenaPr)

相关问题