2012-03-16 7 views
6

Javaでメソッドfinalを作成すると、それを上書きすることはできません。私は同じ行に両方のキーワードを持つことはできません:private final ...()?

メソッドがprivateの場合、そのメソッドが存在するそのクラスのメソッドおよびメンバーによってのみアクセスできます。

だから、それはメソッドにアクセスすることができないので、それは私が次の宣言を書いて、私は次の警告を得るので、それがオーバーライドできるかどうかを確認しようとしても無駄であることを意味している:

プライベートメソッドaddCodeを

private final void addCode(String code) 
    { 
     //codes here... 
    } 

答えて

8

まあ、最終的に宣言され、民間の手段は、誰があなたから離れてメソッドにアクセスしようとしていないと、最終的には誰がメソッドをオーバーロードしないことを意味します。しかし、それにアクセスできる唯一の人はあなたなので、意味がありません。自分のスーパークラスになることはできません。

これは、ファイルへのアクセス権を持つ唯一の人があなたである場合、書き込みのためにドキュメントをロックするようなものです。

+1

...彼の家をロックしているマン・オン・ザ・ムーンのように。 –

2

プライベートメソッドは、子クラスには表示されないため、オーバーライドできません。

+0

クロカン、私は同じ宣言ラインでプライベートとファイナルの両方を持つことができないのですか? – helpdesk

+0

プライベートな最終メソッドを持つのは意味がないので、警告です。注:私的最終変数は意味をなさない。 –

1

メソッドは、final、privateまたはstaticの場合はオーバーライドできません。

+0

そう、私は正しかった、それは方法をプライベートとしてだけでなく、最終的または静的同時に作る意味がないのですか?うーん... – helpdesk

+0

正確には、メソッドがプライベートまたは静的である場合は、それも最終としてフラグを立てることです。しかし逆は真実ではありません。 –

関連する問題