Java 如何重写一个方法 类测试税{ 公共静态void main(字符串[]args){ NJTax=新的NJTax(); t、 grossIncome=50000; t、 家属=2人; t、 state=“NJ”; 双倍纳税=t.calcTax(); 双倍总税=t.学生调整税(你的税); System.out.println(“您的税是”+您的税); } } 类别税{ 双格罗辛康; 字符串状态; 智力依赖者; 公共双calcTax(){ 双州税=0; 如果(总收入

Java 如何重写一个方法 类测试税{ 公共静态void main(字符串[]args){ NJTax=新的NJTax(); t、 grossIncome=50000; t、 家属=2人; t、 state=“NJ”; 双倍纳税=t.calcTax(); 双倍总税=t.学生调整税(你的税); System.out.println(“您的税是”+您的税); } } 类别税{ 双格罗辛康; 字符串状态; 智力依赖者; 公共双calcTax(){ 双州税=0; 如果(总收入,java,methods,overriding,Java,Methods,Overriding,我在以下课程要求方面遇到问题: “通过在NJTax中覆盖calcTax()来更改其功能。新版本的calcTax()应在返回值之前将税额降低500美元。” 这是如何实现的。我只有SafariBooks Online,没有视频可供解决方案使用。提示:返回与tax.calcTax()减去500美元相同的值。提示:返回与tax.calcTax()减去500美元相同的值。要覆盖calcTax的基类(tax)实现,只需在NJTax中添加您自己的calcTax实现。这可以简单到 class TestT

我在以下课程要求方面遇到问题: “通过在NJTax中覆盖calcTax()来更改其功能。新版本的calcTax()应在返回值之前将税额降低500美元。”


这是如何实现的。我只有SafariBooks Online,没有视频可供解决方案使用。

提示:返回与
tax.calcTax()
减去500美元相同的值。

提示:返回与
tax.calcTax()
减去500美元相同的值。

要覆盖calcTax的基类(tax)实现,只需在NJTax中添加您自己的calcTax实现。这可以简单到

    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(){

        }

    }
}
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);
    }

}

为了覆盖calcTax的基类(Tax)实现,只需在NJTax中添加您自己的calcTax实现。这可以简单到

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);
    }

}

类名也应该以大写字母开头。因为我不确定您想要什么功能,这里只是一个例子。Super是指父类,在本例中为
tax
。因此,
NJTax
的calcTax()方法返回
tax.calcTax()-500
。您还可能希望研究使用
@Override
注释来明确方法正在被重写,并提供编译时检查

public double calcTax(){
   return super.calcTax() -500;
}

类名也应该以大写字母开头。因为我不确定您想要什么功能,这里只是一个例子。Super是指父类,在本例中为
tax
。因此,
NJTax
的calcTax()方法返回
tax.calcTax()-500
。您还可能希望研究使用
@Override
注释来明确方法正在被重写,并提供编译时检查

public double calcTax(){
   return super.calcTax() -500;
}

+1,用于包含
@Override
注释。出于某种原因,其他人都忽略了这一点……:)这个解决方案很好,但有一点问题。如果收入小于20000,NJTax calcTax方法将返回一个负数。+1,用于包含
@Override
注释。出于某种原因,其他人都忽略了这一点……:)这个解决方案很好,但有一点问题。如果收入低于20000,NJTax calcTax方法将返回一个负数。下面的基本解决方案是好的,但有一件事你应该记住:public double calcTax(){return super.calcTax()-500;}下面的基本解决方案是好的,但是有一件事您应该记住:public double calcTax(){return super.calcTax()-500;}