既然我們不能實例化一個抽象類,那麼抽象類中的構造函數有什麼必要?抽象類中的構造函數有什麼用處?
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. 爲什麼Java中的抽象類有構造函數?
- 2. 什麼是抽象類中的構造函數的使用php
- 3. 抽象類中的次構造函數的用例是什麼?
- 4. 在Java中爲抽象類創建構造函數有什麼用處?
- 5. 抽象類中構造函數的用法是什麼?
- 6. 抽象類中的構造函數
- 7. 抽象類中的構造函數?
- 8. 抽象類中的構造函數?
- 9. 通用抽象類構造函數
- 10. 在Java的抽象類中使用構造函數有什麼意義?
- 11. 的Java抽象類的構造函數
- 12. 抽象類的構造函數
- 13. 抽象類和構造函數
- 14. 抽象類和構造函數
- 15. 抽象類,構造函數和接口
- 16. Java:抽象類構造函數和this()
- 17. 抽象類,複製構造函數
- 18. java抽象類,構造函數未在超類中調用,爲什麼?
- 19. 構造函數具有抽象類的對象作爲參數
- 20. 抽象構造函數java
- 21. 在C#抽象類中的公共構造函數的實用性是什麼?
- 22. 帶工廠構造函數的抽象類的好處?
- 23. 給抽象類構造函數有什麼內在的錯誤嗎?
- 24. 抽象類構造函數和普通類構造函數的區別?
- 25. 抽象類中的私有構造函數
- 26. C#可能有一個抽象類中的構造函數?
- 27. 具有默認構造函數和具有私有構造函數差異的類的抽象類
- 28. 非法在java構造函數中有抽象類列表?
- 29. 在抽象類中有一個構造函數很好嗎?
- 30. 「在抽象類中沒有默認構造函數」
http://stackoverflow.com/questions/260666/abstract-class-constructor-in-java – 2010-07-02 08:45:15