2012-02-17 70 views
7

我可以爲繼承我的基類的類設置規則。例如。 Person : BaseClass,我想Person執行iSomeKindOfInterface,如果Person沒有實現接口,它是不允許從BaseClass繼承。繼承規則類

我知道這是posibble在通用基礎類,你可以做以下

public BaseClass<T> 
    where T : iSomeKinfOfInterface 

回答

10

您可以實現該接口中的基礎類,並迫使繼承類提供實現:

public interface ISomeInterface 
{ 
    void DoSomething(); 
} 

public abstract class BaseClass : ISomeInterface 
{ 
    public abstract void DoSomething(); 
} 

public class Person : BaseClass 
{ 
    public override void DoSomething() 
    { 
     ... 
    } 
} 
2

聲明您的課程爲

abstract BaseClass : ISomeKinfOfInterface 
+0

不能使用抽象類。我正在談論的類是winforms用戶控件。當我使用抽象基類時,我不能在Visual Studio設計器中少用幾個用戶控件... – Captain0 2012-02-17 10:15:42

+0

使用泛型基類時,我在設計器中得到的錯誤與此相同http://stackoverflow.com/questions/3933218 /當使用抽象類時,表單設計器會在通用抽象用戶控件上出現錯誤 – Captain0 2012-02-17 10:24:00