比方說,我創建了Circle
和Triangle
繼承自Shape
類的類。我的問題是如何防止代碼創建Shape
類的實例?如何防止代碼創建基類的實例?
1
A
回答
4
您使Shape類抽象。這意味着它是一個未完成的類,可以作爲提供附加功能的其他類的基礎。
舉例來說,如果你有割斷加載數據類,你可以有一個抽象類的DataLoader和具體類DatabaseLoader,XmlLoader ...
1
給Shape一個受保護的構造函數。圓形和三角形仍然可以從他們自己的構造函數中調用它們。但其他人不能。
但丁Jinag是ofcourse適合Java的,我是假設C++
1
您可以Shape類爲抽象。
public abstract class Shape {
//your code
}
0
您正在使用哪種編程語言?
一般而言,對象創建是對其成員的內存分配和構造函數的調用。如果你的Shape類沒有成員 - 將不會分配內存。如果它有空的構造函數 - 在這一步也不會發生任何事情。
相關問題
- 1. 如何防止繼承類實例
- 2. 如何防止此類實例化?
- 3. 防止在C#中創建具有靜態實例的類
- 4. 如何在創建有效的ServerDocument實例時防止XmlException?
- 5. 如何防止我的應用程序創建新實例
- 6. C++:防止抽象基類的任何實例化的方法?
- 7. 如何防止每次調用主機時創建類的新實例?
- 8. 防止其他類的類實例化
- 9. 如何防止我的代碼創建一個「nonetype」變量
- 10. 基於類ID創建實例
- 11. 在基類中重新創建實例
- 12. 如何從超類的實例創建子類的實例?
- 13. 基於現有實例創建類的新實例
- 14. 如何防止HAProxy的多個實例?
- 15. 如何僅基於文件名(PHP)創建類的實例
- 16. 如何從其基類的實例創建一個新對象?
- 17. 如何創建基本字符類的實例
- 18. 如何創建TypeScript類的實例?
- 19. 如何在時代創建java.util.Calendar實例?
- 20. 如何在Rcpp代碼中創建R包的S4類的實例
- 21. 防止抽象類實例化
- 22. 如何防止某個類的多個對象實例化
- 23. 如何防止依賴注入的類實例化?
- 24. 創建類的實例
- 25. 創建類的實例
- 26. 創建類的實例
- 27. 如何防止此代碼中的NullPointerException?
- 28. 從基類實例創建派生類實例而不知道類成員
- 29. 如何創建從實現接口的基類派生的實例列表?
- 30. 創建擴展基類的所有類的實例
你如何做一個抽象類依賴於語言,但這是正確的一般答案。 – 2011-03-28 12:08:02