2016-03-31 7 views
0

私は抽象クラスを持っています。それは、継承されたときに3つのメソッドをオーバーライドする必要があります。しかし、私が実際に封印したいもう一つの方法があるので、それは無効になりません。クラス全体が機能するための重要なロジックが含まれているので、ユーザーがどこで無効にするかを指定してオーバーライドすることで、ユーザーが機能を無効にしないようにしたいと考えています。Javaでメソッドを「封印する」方法はありますか? (オーバーライドできないかもしれない)?

これを達成する方法はありますか? 少なくとも、ユーザーに「そうしないでください」と告げる方法はありますか?

どのようにこのような要件にアプローチしますか? 何か提案が歓迎です! 乾杯します。

/編集すると、オーバーライドとオーバーロードの違い、コメントありがとうございます!

+8

の最終 –

+2

可能重複[最終的なメソッドをオーバーロードすることが可能である]としてそれを作る(http://stackoverflow.com/questions/ 1988077/is-it-possible-to-load-to-final-method) –

+0

@ViswanathLekshmananそれはどのように重複していますか? – nhaarman

答えて

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

final(例:public final void myMethod())と宣言すると、オーバーライドできません。方法の非オーバーライドにする

関連する問題