我有一个抽象类,在继承时需要重写3个方法。但是我还有另外一种方法可以封存,所以它不会被覆盖。它包含了整个类工作的重要逻辑,我希望避免用户通过在不应该的情况下执行覆盖来杀死功能。
有没有办法实现这个目标? 或者至少是一种向用户发出信号的方式“不要那样做!”?
你会如何处理这样的要求? 欢迎任何建议! 干杯
/编辑它是覆盖和重载之间的区别,感谢您的评论!
答案 0 :(得分:11)
使用final
使方法不可覆盖:
public abstract class NewClass implements NewInterface{
@Override
public abstract void show();
public abstract NewClass show1();
// This method cannot be overridden
public final void show2(){
}
}
答案 1 :(得分:1)
如果您将方法声明为final
(例如public final void myMethod()
),则不允许覆盖它。