37

Java クラスにメソッドがあり、そのクラスのサブクラスがそのメソッドをオーバーライドできないようにしたいとします。それをしてもいいですか?

4

3 に答える 3

62

次のように、メソッドを と宣言できますfinal

public final String getId() {
   ...
}

詳細については、http://docs.oracle.com/javase/tutorial/java/IandI/final.html を参照してください

于 2012-10-22T23:32:19.303 に答える
9

メソッドをfinalにするだけです。

于 2012-10-22T23:32:30.110 に答える
4

メソッドがビルドされた API の一部ではなく、サブクラスによって直接呼び出されない場合は、単にメソッドを作成することをお勧めしますprivate

クラス階層が単一のパッケージに含まれている場合は、メソッドをパッケージ スコープにします (スコープのキーワードは使用しません)。したがって、外部の世界 (他の独自のパッケージを含む) のみがアクセスできず、オーバーライドできません。

メソッドが実際には API の一部ではないが、外部であってもサブクラスから見えるようにする必要がある場合は、それを作成してprotectedfinal

最後に、メソッドが API の一部である場合は、それpublicを andにしfinalます。

于 2012-10-22T23:38:12.300 に答える