2012-02-17 15 views
7

¿Puedo establecer reglas para la clase que hereda mi clase base? p.ej. Person : BaseClass, quiero Person para implementar iSomeKindOfInterface, si Person no implementa la interfaz, no está permitido heredar de BaseClass.Reglas para heredar clase

Sé que esto es posibble en clases base genéricos donde se puede hacer la siguiente

public BaseClass<T> 
    where T : iSomeKinfOfInterface 

Respuesta

10

Puede implementar la interfaz en su clase base y la fuerza de la clase que hereda de suministrar la aplicación:

public interface ISomeInterface 
{ 
    void DoSomething(); 
} 

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

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

Declare su clase como

abstract BaseClass : ISomeKinfOfInterface 
+0

No se puede usar la clase abstracta. Las clases de las que estoy hablando son los controles de usuario de winforms. Cuando uso una clase base abstracta, no puedo controlar el usuario en el diseñador de Visual Studio ... – Captain0

+0

El error que obtengo en el diseñador cuando uso una clase base genérica es el mismo que este http://stackoverflow.com/questions/3933218/form-designer-breaks-on-generic-abstract-usercontrol cuando se usan clases abstractas el error es similar – Captain0

Cuestiones relacionadas