java如何重写一个方法
class TestTax {
public static void main (String[] args){
NJTax t = new NJTax();
t.grossIncome= 50000;
t.dependents= 2;
t.state= "NJ";
double yourTax = t.calcTax();
double totalTax = t.adjustForStudents(yourTax);
System.out.println("Your tax is " + yourTax);
}
}
class tax {
double grossIncome;
String state;
int dependents;
public double calcTax(){
double stateTax = 0;
if(grossIncome < 30000){
stateTax = grossIncome * 0.05;
}
else{
stateTax = grossIncome * 0.06;
}
return stateTax;
}
public void printAnnualTaxReturn(){
// code goes here
}
}
public class NJTax extends tax{
double adjustForStudents (double stateTax){
double adjustedTax = stateTax - 500;
return adjustedTax;
public double calcTax(){
}
}
}
我在课程要求方面遇到了问题: “通过在NJTax中覆盖calcTax()来更改其功能。新版本的calcTax()应在返回值之前将税降低500美元。”
这是如何实现的。我只有SafariBooks在线版,没有解决方案的视频
# 1 楼答案
# 2 楼答案
http://download.oracle.com/javase/tutorial/java/IandI/override.html
类名也应该以大写字母开头。因为我不确定你想要什么功能,这里只是一个例子。Super指的是父类,在本例中为
tax
。因此,NJTax
的calcTax()方法返回tax.calcTax() - 500
。您可能还想研究使用@Override
注释来明确方法正在被重写,并提供编译时检查# 3 楼答案
要覆盖calcTax的基类(Tax)实现,只需在NJTax中添加自己的calcTax实现。这可以简单到