2012-06-23 15 views

Respuesta

31

Marque la clase como abstract (este es el análogo de C# al VB.NET Must Inherit).

Esto asegurará que no se pueda crear una instancia directamente.

Desde el artículo de MSDN vinculado:

El modificador abstract indica que la cosa se está modificando tiene una aplicación que falta o incompleta. El modificador abstracto se puede usar con clases, métodos, propiedades, indizadores y eventos. Utilice el modificador abstracto en una declaración de clase para indicar que una clase solo pretende ser una clase base de otras clases. Los miembros marcados como abstractos o incluidos en una clase abstracta deben implementarse por clases que se derivan de la clase abstracta.

(el énfasis es mío)

+1

pero cuando se define una clase como abstracta, ¿significa que debe heredarse? – thechmodmaster

+1

@thechmodmaster - Bueno, no puedes crear una instancia de dicha clase directamente. Solo puede crear instancias de clases que hereden de él. Si eso coincide con su concepto de "debe ser heredado", no lo sé. Hace juego el mío. – Oded

+0

Me parece lógico ... es una pregunta de un interviw de trabajo – thechmodmaster

4

Se puede definir una clase como abstract, o darle una protección de solo constructor. abstract es mejor.

5

Utilice el modificador abstract.

public abstract class MyClass() 
{ 
    ... 
} 
1

No es posible needness enforse de la derivación o la implementación en código, si que era una pregunta.

Pero:

Puede definir un interface para obligar a los consumidores a aplicar ella.

O puede definir abstract class con solo miembros abstractos para forzar al consumidor a anular todos de ellos.

Espero que esto ayude.

+0

Sí, eso es lo que menciono: cómo definir una clase de una forma que requiera heredarla. Desea asegurarse de que esta clase sea heredada. – thechmodmaster

3

Si desea crear una clase, que debe heredarse, deberá marcarla con el modificador abstract.

public abstract MyClass 
{ 
} 
Cuestiones relacionadas