已知类SubClass的getSum方法返回其父类成员i与类SubClass成员j的和;类SuperClass中的getSum为抽象函数,程序中的第14行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,当程序运行到第22行且尚未执行第22

admin2012-03-13  39

问题 已知类SubClass的getSum方法返回其父类成员i与类SubClass成员j的和;类SuperClass中的getSum为抽象函数,程序中的第14行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,当程序运行到第22行且尚未执行第22行语句时成员变量i的值,最后给出程序运行后的输出结果。
   [Java代码]
   行号     代码
   01     public class UainJava{
   02 public static void main(String[]args){
   03    SuperClass s=new SubClass();
   04    System.out.printin(s.getValue());
   05    System.out.printIn(s.getSum()):
   06    }
   07  }
   08  abstract class SuperClass {
   09 private int i;
   10 public SuperClass(){i=5;}
   11 public int getValue(){
   12    return i:
   13  }
   14 public final abstract int getSum():
   15 }
   16  class SubClass extends SuperClass{
   17    int j;
   18    public SubClass(){
   19    this(-3);
   20  }
   21   public SubClass(int j){
   22      (1)  .j=j;
   23  }
   24   publiC int getValue()(return j;}
   25   public int getSum(){
   26    return  (2)  .getValue()+j;
   27  }
   28

选项

答案(1) this (2) super 错误更正结果为:public abstract,int getSum(); 变量i的值为5 运行结果为: -3 2

解析 本题主要考察了Java程序语言中类成员变量的初始化、父类成员方法的调用、对象的构造等。(1)处要求用参数j的值更新数据成员,为避免与同名变量j冲突,应加this前缀,所以(1)处应为this,(2)处要求调用父类方法getValue(),但为了和子类方法相区别,应加前缀super,所以(2)处应为super。程序14行getSum函数是一个抽象函数,在SubClass子类中将被继承实现,所以该函数不可以被定义为final类型,因此应该去掉final关键字;当程序运行到22行之前时父类构造函数已执行,所以i值为5。最后程序输出的结果应为-3和2。
转载请注明原文地址:https://kaotiyun.com/show/r6jZ777K
0

最新回复(0)