原文:
I need to calculate tax for a object wine i have it calculated in parent class and now i need to calculate it in class wine because i have additional tax now i have this super.
super.novaCijena(cijenaPr*ALC_TAX);
but i need it to be like this
super.novaCijena(cijenaPr)*ALC_TAX;
here is my curent code
main class
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);
}
Product class
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;
}
and wine class
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.";
}
}
# Answer 1
I think what you want is to have an overriden method in Wine:
@Override
public double novaCijena(double cijenaPr) {
return super.novaCijena(cijenaPr) * ALC_TAX;
}
And call this.novaCijena(cijenaPr) inside Wine.