Q
如何強制單繼承?
3
A
回答
5
我想只有我的B類(在A的同一個程序集中定義)可以繼承A.我該怎麼辦?
是根本不存在需要繼承的話..
public sealed class B
{
//includes all methods of A and B
}
1
我建議你使用,而不是組成繼承來限制基本類型成員的可見性。
2
您可以使用一個internal
構造函數,這可以防止其他程序集使用您的類。
public class A
{
internal A() { }
}
public sealed class B : A { }
而且,如果你不關心性能:
public class A
{
public A()
{
Type c = GetType();
if (c != typeof(A) && c != typeof(B)) throw ....;
}
}
+0
其他程序集可以使用類A(請參閱公共訪問修飾符)。 – Nick
+0
@Nick他們可以使用它,但不能從它繼承。而你不會說「使用」你只說「繼承」。 –
0
如果僅有B可以繼承A,那麼你真的需要繼承擺在首位?
如果是分裂一個變得太大的班級,你不會遵循良好的做法,因爲它不可能有單一的責任。
現在,如果你確實需要做一些這方面的尷尬原因,你可以嘗試:
public class B
{
private sealed class A : B
{
}
}
它調整您的需求。
相關問題
- 1. 強制重載新/刪除繼承類
- 2. 強制與模型繼承的唯一
- 3. cocos2d-x是否強制多重繼承?
- 4. TPC映射:MapInheritedProperties()強制繼承密鑰
- 5. 通過多代VB.NET強制繼承
- 6. 如何強制輸入View繼承的內容?
- 7. 在打字稿如何強制繼承類實現的方法
- 8. 如何強制新的網站集繼承母版頁?
- 9. 我如何從Windows主題繼承/覆蓋強制樣式?
- 10. 如何強制<noscript>內聯並繼承CSS樣式?
- 11. 如何從ctor中強制參數的類繼承?
- 12. Point Cloud Library的單繼承限制多重繼承
- 13. 限制繼承
- 14. 如何繼承
- 15. 與單繼承
- 16. 繼承單
- 17. 單表繼承或類表繼承?
- 18. 類繼承或單表繼承2.3
- 19. 強制CSS不能繼承任何屬性
- 20. 接口繼承和通用接口強制顯式強制轉換?
- 21. 如何繼承和定製一個類
- 22. 如何繼承控制模板
- 23. 如何繼承MPMoviePlayer控制器
- 24. 如何繼承設計控制器
- 25. 單控制器,多(繼承)類(軌3)
- 26. 如何設計表單繼承
- 27. 如何做到繼承與單
- 28. 如何:DataMapper中的單表繼承?
- 29. 這是如何django做單表繼承?
- 30. Rails的單表繼承如何工作?
有我重複我的代碼?這不是一件好事...... A級必須存在。 – Nick
它會如何重複?只有一個類可以繼承它,所以它是基類和繼承者之間的1-1映射。複製是不可能的。 – jgauffin
你可能想解釋爲什麼'A'不能成爲B的一部分。 – jgauffin