有没有办法在Java中“封印”一个方法? (它可能不会被覆盖)?

时间:2016-03-31 11:03:19

标签: java android

我有一个抽象类,在继承时需要重写3个方法。但是我还有另外一种方法可以封存,所以它不会被覆盖。它包含了整个类工作的重要逻辑,我希望避免用户通过在不应该的情况下执行覆盖来杀死功能。

有没有办法实现这个目标? 或者至少是一种向用户发出信号的方式“不要那样做!”?

你会如何处理这样的要求? 欢迎任何建议! 干杯

/编辑它是覆盖和重载之间的区别,感谢您的评论!

2 个答案:

答案 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()),则不允许覆盖它。