【问题标题】:Infinite recursion error无限递归错误
【发布时间】:2017-03-19 17:32:37
【问题描述】:

我有一个父类,其中包含以下方法:

public String getSubjects() {
    return this.getSubjects();    
} 

在继承该方法的子类中如下:

@Override
    public String getSubjects(){
        return(" Computer Student" + "[" + studCountObj + "] " + name + ": "); 
    }

但我收到一条错误消息:

The method getSubjects may recurse if not overridden in subclass.

这是什么意思,我可以做些什么来解决这个问题?

【问题讨论】:

    标签: java inheritance recursion subclass overriding


    【解决方案1】:

    父类的实现只是调用自己,并且正如错误说明,将继续这样做,无休止。父类应该返回一些默认值(例如,null),或者更好的是,如果没有智能方法可以实现该方法,则保留此方法abstract

    【讨论】:

      【解决方案2】:

      this.getSubjects() 引用当前方法。如果要调用父类的方法,用户关键字“super”:

      public String getSubjects() {
          return super.getSubjects();    
      } 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多