¿Cómo se define una clase debe heredar? en C#Cómo definir una clase debe heredar
Respuesta
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)
pero cuando se define una clase como abstracta, ¿significa que debe heredarse? – thechmodmaster
@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
Me parece lógico ... es una pregunta de un interviw de trabajo – thechmodmaster
Se puede definir una clase como abstract
, o darle una protección de solo constructor. abstract
es mejor.
Utilice el modificador abstract
.
public abstract class MyClass()
{
...
}
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.
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
Si desea crear una clase, que debe heredarse, deberá marcarla con el modificador abstract
.
public abstract MyClass
{
}
- 1. ¿Cómo heredar una clase de C++ en JavaScript?
- 2. Heredar de una clase o una clase abstracta
- 3. Reglas para heredar clase
- 4. Cómo definir una clase en Python
- 5. Heredar clase UIViewController y XIB
- 6. ¿Puede una clase anidada de C++ heredar su clase adjunta?
- 7. ¿Puede una subclase heredar también el constructor de la clase padre, o debe tener cada clase su propio constructor?
- 8. ¿Cómo puede la clase derivada heredar una función estática de la clase base?
- 9. ¿Cómo se debe definir esta asociación Many-To-Many doctrine2?
- 10. cómo definir una clase en una sola línea?
- 11. ¿Cómo definir correctamente las propiedades de clase?
- 12. ¿Se debe definir una función Javascript antes de llamarlo?
- 13. Cómo heredar de std :: ostream?
- 14. Definir una clase en un JSP
- 15. El oyente de Java debe heredar de java.util.EventListener, ¿por qué?
- 16. Scala: ¿cómo heredar una "ranura estática"?
- 17. ¿Cómo puedo obtener una clase interna para heredar el tipo genérico de la clase adjunta?
- 18. Heredar variable estática de la clase abstracta
- 19. ¿Cómo heredar de MonkeyDevice?
- 20. Haskell: ¿Cómo puedo definir una clase de tipo para conjuntos?
- 21. RequireJS: ¿Cómo definir módulos que contienen una sola "clase"?
- 22. Cómo definir dinámicamente una clase en C# Cmdlet PowerShell
- 23. Cómo definir las funciones miembro 'final' para una clase
- 24. ¿Se puede extender (heredar) una clase no abstracta en Java?
- 25. ¿Cuándo heredar de una clase te duele más tarde?
- 26. ¿Puede una clase C# heredar atributos de su interfaz?
- 27. Heredar una clase base común en el código EF primero
- 28. ¿Se debe instanciar una clase en C#?
- 29. ¿Cómo puedo heredar el resumen de C# en otra clase? (Como heredar Javadoc)
- 30. La clase de contrato debe ser una clase abstracta
Viniendo de VB.Net? ¡Buena suerte! También se cubre en http://stackoverflow.com/questions/5189405/difference-between-mustinherit-and-abstract-class – dash