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美元。”
这是如何完成的。我只有safaribooksonline而没有解决方案的视频。
答案 0 :(得分:4)
http://download.oracle.com/javase/tutorial/java/IandI/override.html
班级名称也应以大写字母开头。由于我不确定您对功能的要求,这里只是一个例子。超级引用父类,在这种情况下是tax
。因此,NJTax
的calcTax()方法返回tax.calcTax() - 500
。您还可能希望使用@Override
注释来明确表示正在覆盖方法并提供编译时检查。
public class NJTax extends tax {
public double adjustForStudents (double stateTax) {
double adjustedTax = stateTax - 500;
return adjustedTax;
}
public double calcTax() {
return super.calcTax() - 500;
}
}
答案 1 :(得分:1)
public class NJTax extends tax{
double adjustForStudents (double stateTax){
double adjustedTax = stateTax - 500;
return adjustedTax;
}
public double calcTax(){
double stateTax = super.calcTax();
return this.adjustforStudents(stateTax);
}
}
答案 2 :(得分:0)
提示:返回与tax.calcTax()
减去$ 500相同的值。
答案 3 :(得分:0)
为了覆盖calcTax的基类(Tax)实现,只需在NJTax中添加自己的calcTax实现。这可以像
一样简单public double calcTax(){
return super.calcTax() -500;
}