2012-03-16 19 views
6

我知道,當你在java中創建一個方法final時,它不能被覆蓋。不能在同一行上同時存在兩個關鍵字:private final ...()?

當一個方法是private時,它只能由該方法存在的給定類的方法和成員訪問。

那麼,這是否意味着,因爲該方法不能訪問它沒有用試圖檢查其是否可以被覆蓋,因爲我寫了下面的聲明,我得到以下警告:

私有方法addCode聲明最後

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

回答

8

好了,私人的手段沒有人會從你除了訪問方法和最終意味着沒有人能重載方法。但是由於唯一可以訪問它的人就是你,所以沒有任何意義。你不能成爲你自己的超類。

這就像鎖定一個文件寫入文件時,唯一有權訪問該文件的人就是你。

+1

......幾乎就像月亮鎖上他的房子一樣。 – 2012-03-16 14:17:25

2

私有方法不能被覆蓋,因爲它對子類是不可見的。

+0

croakin,這就是爲什麼我不能在同一個宣言線上同時擁有私人和最終? – helpdesk 2012-03-16 14:12:43

+0

這是一個警告,因爲擁有私人最終方法是沒有意義的。注意:私有的最終變量確實有意義。 – 2012-03-16 14:16:38

1

如果方法是最終的,私有的或靜態的,則方法不能被重寫。

+0

所以,我是正確的,它沒有任何意義使私有以及最終或靜態的方法在同一時間嗎?嗯...... – helpdesk 2012-03-16 14:14:39

+0

準確地說,如果該方法是私有的或靜態的,那麼redondant也會將其標記爲final。然而事實並非如此。 – 2012-03-16 14:19:20

相關問題