2011-08-31 119 views
0

我可以創建一個像下面這樣的抽象類嗎?我可以在抽象類中有私人最終字段嗎

abstract class A{ 
private final String foo; 
private final String too; 

public A(final String foo, final String too) { 
    this.foo= foo; 
    this.too= too; 
} 
public String getfoo(){ 
     return foo; 
    } 
public String gettoo(){ 
     return too; 
    } 
} 
+3

如果你嘗試它會發生什麼?你爲什麼認爲這可能是不可能的? –

+1

爲什麼不呢?有沒有你想問的具體問題? –

回答

-1

當然是possible.But它是不是一個好的做法,因爲你不能創建這個class.Main點的目的之一是,你也不要需要這種類型的類的,因爲你沒有定義裏面的任何抽象函數。但根據你的問題,你絕對可以創建這種類型的抽象類。

7

短:是的。

長(er):抽象類只是一個不能實例化的類,因爲零件可能仍然缺失。因此我可以擁有私人領域。請注意,除了通過getters/setters之外,子類不能訪問它們。

0

是的,你可以。

考慮多種可能,使他們的而不是protected私人,讓你的子類,即擴展此類,有到田間地頭直接進入那些..

1

你的代碼是正確的。
注:在抽象類中好的做法是受保護的構造,怎麼一回事,因爲類本身不能被實例化和繼承類必須要調用super(...)構造。

+0

關於「好習慣」 - 你這麼說? http://stackoverflow.com/a/260779/3712268 – pawpaw

相關問題