既然我們不能實例化一個抽象類,那麼抽象類中的構造函數有什麼必要?抽象類中的構造函數有什麼用處?
3
A
回答
4
抽象類被設計爲擴展,每個構造函數來自子項must perform a call to a constructor from the base class,因此您需要抽象類中的構造函數。
抽象類是一個骨架,因此直接實例化它是沒有意義的,因爲它仍然是不完整的(孩子會提供其餘的)。
2
一個例子:
public abstract class BaseClass
{
private String member;
public BaseClass(String member)
{
this.member = member;
}
... abstract methods...
}
public class ImplementingClass extends BaseClass
{
public ImplementingClass(String member)
{
/* Implementing class must call a constructor from the abstract class */
super(member);
}
... method implementations...
}
2
我們可以用一個抽象類的構造函數來執行代碼,相關的每個子類中。這樣可以防止重複的代碼
1
抽象類可以有字段和非抽象方法(使它成爲比接口更抽象的類)。當擴展它的類被實例化時,這些字段可能需要被初始化。
具有抽象類的構造函數允許你調用super(foo);
初始化它們,而不是直接做
相關問題
- 1. 抽象類中的次構造函數的用例是什麼?
- 2. 在Java中爲抽象類創建構造函數有什麼用處?
- 3. 抽象類中構造函數的用法是什麼?
- 4. 抽象類中的構造函數?
- 5. 抽象類中的構造函數?
- 6. 在Java的抽象類中使用構造函數有什麼意義?
- 7. 的Java抽象類的構造函數
- 8. 抽象類的構造函數
- 9. 抽象類和構造函數
- 10. 抽象類和構造函數
- 11. Java:抽象類構造函數和this()
- 12. 抽象類,複製構造函數
- 13. 在C#抽象類中的公共構造函數的實用性是什麼?
- 14. 帶工廠構造函數的抽象類的好處?
- 15. 抽象類構造函數和普通類構造函數的區別?
- 16. 抽象類中的私有構造函數
- 17. C#可能有一個抽象類中的構造函數?
- 18. 「在抽象類中沒有默認構造函數」
- 19. 在抽象類中有一個構造函數很好嗎?
- 20. 爲什麼我需要擴展抽象類中的另一個構造函數?
- 21. 使用抽象與構造函數
- 22. 用模擬的構造函數參數嘲笑抽象類?
- 23. 呼叫從抽象類子類構造函數在Java中
- 24. 抽象參數構造函數
- 25. 抽象類的構造函數的繼承對象
- 26. 使用Java泛型的接口/抽象類的構造函數
- 27. 獲取通用抽象類的默認構造函數
- 28. 使用「抽象」超類的複製構造函數
- 29. 如何調用Scala抽象類型的構造函數?
- 30. Java - 使用抽象類的構造函數
http://stackoverflow.com/questions/260666/abstract-class-constructor-in-java – 2010-07-02 08:45:15