无限递归错误

时间:2017-03-19 17:32:38

标签: java inheritance recursion subclass method-overriding

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

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.

这意味着什么,我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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