在Java中覆盖接口而不是父类

时间:2016-11-17 14:33:15

标签: java inheritance override

我有一个扩展另一个类(ReloadableResourceBundleMessageSource)的类,并且还实现了一个接口(myMessageProvider),如下所示:

public class CustomMessageSource extends ReloadableResourceBundleMessageSource implements myMessageProvider{

    @Override
    public String getMessage(String code, Object[] objects, final Locale locale{
        try {
            return getMessage(code, objects, locale);
        } catch (NoSuchMessageException e) {
            return code;
        }
    }
}

接口和父类都有getMessage函数,但我想只覆盖接口。目前,此代码会产生编译错误,因为父类(ReloadableResourceBundleMessageSource)中的getMessage为final

1 个答案:

答案 0 :(得分:1)

如果您覆盖不是getMessageInternal()的{​​{1}}方法,以及通过 final方法调用的方法,则可以通过不返回来影响结果一个null。您无需更改代码中对getMessage()方法的任何调用,因为它们将自行调用内部方法。

getMessage()