Al compilador no parece importarle hasta ahora, pero solo quería comprobar si estoy preparando alguna falla al implementar ciertos métodos en mi clase abstracta.¿Las clases abstractas pueden implementarse en C#?
Respuesta
Una clase abstracta generalmente tiene uno o más métodos abstractos. Entonces sí, puede tener algún método implementado. El objetivo es obligar al usuario a implementar estos métodos para que un objeto funcione. A veces, las clases abstractas se utilizan para proporcionar una implementación 'base' de algunas interfaces, dejando que el usuario final especifique solo los métodos clave. También puede tener una clase abstracta sin ningún método abstracto: en este caso usted afirma que debe derivar de esa clase para poder usarla.
Sí. No se puede crear una instancia de la clase abstract
(debe instanciar una clase que hereda de su clase abstracta), pero puede contener implementaciones.
Perfectamente bien para implementar algunos métodos y dejar otros abstractos.
Si todos los métodos tienen que ser abstractos, también puede utilizar una interfaz para ello.
está bien y permitido, un abstract class
tiene al menos un miembro (método/propiedad) no implementado por lo que no se puede crear una instancia.
interface
también se llama pure abstract class
, lo que significa que es 100% abstracto, por lo que no le permite especificar ninguna implementación.
tenga en cuenta que hay muchos artículos y opiniones acerca de nunca derivar una clase concreta de otra clase concreta, sino solo de abstractas ... al menos esta fue la tendencia en C++ hasta hace algunos años, luego me mudé al lado de C#, comenzó a trabajar más y no tuvo tiempo de seguir leyendo esos lindos artículos ... :)
Puede tener una clase abstracta sin ningún miembro abstracto en C# –
Es común tener alguna implementación en clases abstractas.
Si no hay ninguna implementación, considere usar una interfaz en lugar de una clase abstracta.
- 1. C#: ¿Las clases abstractas necesitan implementar interfaces?
- 2. Cómo crear propiedades abstractas en las clases abstractas de Python
- 3. Java: variables finales en las clases abstractas
- 4. C# Propiedades en clases base abstractas
- 5. declaraciones de clases abstractas en C++
- 6. Clases selladas abstractas
- 7. .net Herencia múltiple de las clases abstractas
- 8. ¿Constructores en clases abstractas?
- 9. Interfaces vs. clases abstractas
- 10. ¿Múltiples clases abstractas derivadas?
- 11. Cómo probar las clases abstractas de unidad
- 12. ¿Las clases abstractas tienen un VTABLE?
- 13. ¿Pueden las pruebas unitarias implementarse efectivamente con un desarrollo ágil?
- 14. Grandes clases base abstractas
- 15. Clases abstractas en relaciones GORM
- 16. JAXB y clases abstractas
- 17. Alternativas a clases abstractas en Ruby?
- 18. AS3 - clases abstractas
- 19. ¿Las clases abstractas de Do/can reemplazan las interfaces?
- 20. ¿Por qué las clases abstractas en Java tienen constructores?
- 21. ¿Por qué crear clases e interfaces abstractas?
- 22. Pruebas unitarias Clases abstractas en Groovy
- 23. ¿Pueden los miembros de std :: forward_list implementarse como estáticos?
- 24. C# tiene clases e interfaces abstractas, ¿debería tener también "mixins"?
- 25. Qt interfaces o clases abstractas y qobject_cast()
- 26. Herencia ambigua de clases base abstractas:
- 27. ¿Las clases de ayudante/utilidad deben ser abstractas?
- 28. sun.org.mozilla Rhino y se extienden las clases abstractas Java
- 29. de Python(), las clases base abstractas y NotImplementedError
- 30. Uso de los genéricos en clases abstractas
Es posible crear clases abstractas sin métodos abstractos, simplemente marcando la clase como abstracta ... –
clase abstracta significa que debe ser heredada para ser instanciada. No implica que deba tener métodos abstractos como señaló Kirill Polishchuk. – ken2k
@KirillPolishchuk Gracias Krill, nunca lo noté, corregí la respuesta. –