Java 如何重写一个方法 类测试税{ 公共静态void main(字符串[]args){ NJTax=新的NJTax(); t、 grossIncome=50000; t、 家属=2人; t、 state=“NJ”; 双倍纳税=t.calcTax(); 双倍总税=t.学生调整税(你的税); System.out.println(“您的税是”+您的税); } } 类别税{ 双格罗辛康; 字符串状态; 智力依赖者; 公共双calcTax(){ 双州税=0; 如果(总收入
我在以下课程要求方面遇到问题: “通过在NJTax中覆盖calcTax()来更改其功能。新版本的calcTax()应在返回值之前将税额降低500美元。”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
这是如何实现的。我只有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;}