【发布时间】:2016-11-17 14:33:15
【问题描述】:
我有一个类扩展了另一个类 (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。
【问题讨论】:
-
它们是否采用相同的参数?顺便说一句,您在这里缺少“)”
public String getMessage(String code, Object[] objects, final Locale locale{ -
@XtremeBaumer,是的,参数相同。
-
他们也应该这样做吗?
-
不,我必须重写它,这样它就不会抛出
NoSuchMessageException异常。 -
创建一个只实现
myMessageProvider的不同类,然后使用它并扩展ReloadableResourceBundleMessageSource。
标签: java inheritance overriding