JAVA继承-多态性 为什么不能选择D

考虑以下两个类:

public  class  UpByOne  {

private  int  num  =  0;
public  int  getNum  ()  {
return  num;

}

public  void  setNum  (int  x)  {
num  =  x;
}

public  void  up  () {
num  =  num  +  1;
}

}

class  UpByTwo  extends  UpByOne  {

public  void  up  ()  {
//  missing  code  goes  here
}

}

在类UpByTwo中,重定义方法方法up(),使得num加2,以下哪段代码最合适填补省掉的代码?

 A.num = num + 2;
 B.super.up(); super.up();
 C.setNum(getNum()) + 2;
 D.super.up() + 1;

D肯定不行,+1后没有赋值给num啊。up也无返回值
只能选B