有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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在线版,没有解决方案的视频


共 (3) 个答案

  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. # 2 楼答案

    http://download.oracle.com/javase/tutorial/java/IandI/override.html

    类名也应该以大写字母开头。因为我不确定你想要什么功能,这里只是一个例子。Super指的是父类,在本例中为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;
        }
    
    }
    
  3. # 3 楼答案

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

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