Java 私人/公共课程的应用
我有一个恼人的代码:Java 私人/公共课程的应用,java,class,private,public,Java,Class,Private,Public,我有一个恼人的代码: class A{ private int f=0; public void setF(int _f){f=_f;} public boolean checkF(int expected){return f==expected;} } class B extends A{ public void setF(int f){[???]} public void m(){ setF(3); assert checkF(-3); setF(
class A{
private int f=0;
public void setF(int _f){f=_f;}
public boolean checkF(int expected){return f==expected;}
}
class B extends A{
public void setF(int f){[???]}
public void m(){
setF(3);
assert checkF(-3);
setF(8);
assert checkF(-8);
}
}
public class Exercise{
public static void main(String [] arg){
new B().m();
}
}
[??]是我需要给出答案的地方。
我不知道如何将B类的setF(intf)链接到A类的setF(intf)。
这是我的第一个想法:
A an = new A();
an.setF(f);
这失败了。
我被难住了,请帮帮我。方法m()
需要确保B
中传递给setF
的相反内容在checkF
方法中出现。与其像setF
中的A
那样按原样存储数字,B
应该覆盖它。使用super
调用重写的setF
方法,将数字的相反方向传递给它
public void setF(int f){
super.setF(-f); // Replaces "[???]"
}
我想您需要
super.setF(-f)代码>在那些花括号内;但现在还很不清楚。你到底想达到什么目的?