我有一个名为Module
的类,其中有一个方法onEnable();
现在,我有一个名为Config
的类,并希望使onEnable();
方法为private
,因为有一个预定义的动作,并且不应允许扩展Config
的类更改其行为。
有什么办法吗?
例
class Module{
public void onEnable(){
}
}
一个允许使用
onEnable
的类扩展模块:class HelloWorldModule{
@Override
public void onEnable(){
System.out.println("Hello, World!");
}
}
现在配置类,我希望
onEnable
是私有的,因此扩展Config的类不能!覆盖onEnable
:class Config{
@Override
private void onEnable(){
}
}
因此,现在,扩展了
ProgrammConfig
的名为Config
的类无法覆盖onEnable
。但是,这不起作用,因为您不能将
public
方法覆盖为private
方法。 最佳答案
通过将方法声明为public
,您是说应该可以在此类的每个实例(包括子类)上调用该方法。在子类中将方法声明为private
没有意义,因此是不允许的。
现在,如果您担心子类会覆盖方法,则可以将方法声明为final
来防止这种情况:
class Config extends Module{
@Override
public final void onEnable(){}
//Whatever
}