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)在那些花括号内;但现在还很不清楚。你到底想达到什么目的?