ventajas una sirve que polimorfismo para interfaces implementacion ejemplos desventajas clases clase caracteristicas abstractas abstracta c# abstract-class

c# - una - Uso exacto de la clase abstracta



polimorfismo c# (4)

Se usa una clase abstracta cuando tiene alguna funcionalidad base que desea que hereden las subclases, pero no tendría sentido crear una instancia de la clase base. Por ejemplo, si tiene algo así como una clase base de Forma, puede tener una implementación integrada que pueda ser utilizada por subclases, así como los métodos de interfaz que desee que implementen las subclases. Sin embargo, probablemente no tendría sentido crear un objeto Shape. Una clase abstracta le da esta funcionalidad. Otro gran ejemplo de uso de clases abstractas es el patrón abstracto de fábrica .

¿Cuál es el uso exacto de una clase de Resumen? ¿No es posible hacer las mismas cosas en una clase ordinaria ya que es una clase abstracta?


A diferencia de las clases regulares, las clases abstract pueden contener métodos abstract . Actúan de manera similar a los miembros de la interfaz.

Mientras tanto, pueden hacer casi todo lo demás que pueden hacer las clases regulares: pueden implementar métodos, contener campos y tipos anidados, derivar de otra clase, etc.


Use una clase abstracta para proporcionar una implementación concreta pero no permita la creación de instancias. Siempre puedes crear una instancia de una clase ordinaria que no tiene sentido si no puede funcionar sola. Al mismo tiempo, una interfaz puede no ser suficiente si hay una implementación concreta que sea idéntica en todas las clases implementadas. Una clase abstracta es suficiente.

  • Interfaz: solo contrato, sin implementación, sin creación de instancias
  • Clase abstracta: contrato, alguna implementación, no instanciación
  • Clase: contrato, implementación, instanciación

Las clases regulares requieren que proporciones implementaciones para todos los métodos.
Las interfaces requieren que no proporciones implementaciones para todos los métodos.

Las clases abstractas son el único tipo de clase que le permite tener métodos que sí contienen una implementación, y tienen métodos que no proporcionan una implementación, pero requieren una clase heredada para proporcionarla.

El hecho de que se le permita agregar métodos sin una implementación es la razón por la que no puede instanciar una clase abstracta: solo puede crear una instancia de algo que tenga implementaciones para todos sus métodos.