¿Qué es la clase abstracta en C#? | Definición, propiedades y ejemplos

El término abstracción en programación se refiere al ocultamiento de información innecesaria, aunque muy importante, y hacer visible al usuario solo cierta información clave o necesaria. Esto es posible mediante el uso de clases abstractas.

La clase abstracta en C# es esencialmente una clase que no permite la creación de objetos. 'Resumen' aquí es una palabra clave o un modificador que hace que esa clase o método en particular sea abstracto o restringido. Solo se puede acceder a una clase abstracta a través de la herencia de una clase diferente.

Propiedades y componentes de la clase abstracta en C#

Hay ciertos factores que deben estar presentes para que se inicie o acceda a una clase abstracta. Se han enumerado de la siguiente manera.

  1. Una clase abstracta se utiliza para crear una clase base a la que pueden acceder comúnmente varias clases derivadas. Para usar o implementar una clase abstracta, primero se requiere que los programadores creen una clase derivada.
  2. Por lo tanto, la clase abstracta debe ser heredada por subclases, que incluso pueden anular la función.
  3. Cada clase abstracta requiere al menos un método abstracto.

Ejemplo de una clase abstracta en C#

Dado que el mecanismo es complicado y comprensible solo para aquellos familiarizados con el lenguaje de programación, es mejor comenzar con un ejemplo muy simple que ayudará a explicar el concepto.

Supongamos que existe una clase 'Árbol', con un método diseñado existente conocido como 'tipo'. No se define nada más y no se proporciona ninguna otra información en particular; uno no conoce el tipo de árbol, ni siquiera los tipos que son posibles.

Si hay un ejemplo específico de un árbol disponible, se crea una clase separada a través de la herencia de la clase base, Árbol. La idea es que la nueva clase, digamos Pine o Oak, en realidad no puede modificar la construcción o definición de la clase base, es decir, Tree. Tiene que crear su propia clase, derivada de la clase Tree, y definir otro método heredado de la base.

Ventajas de la clase abstracta en C#

  1. Si bien las subclases pueden elegir implementar o anular una clase abstracta, se pueden realizar ciertas modificaciones que requieren que una determinada función deba implementarse absolutamente.
  2. Por tanto, existe un alto grado de flexibilidad a la hora de diseñar una clase abstracta, respecto a qué métodos se deben implementar imperativamente.
  3. El programador puede elegir cuántos métodos abstractos quiere en una clase abstracta. También es posible escribir el código sin incluir métodos abstractos.
  4. Una clase abstracta debe definirse solo una vez y se puede acceder o derivar de tantas veces como sea necesario a partir de ahora.
  5. Una clase abstracta es muy útil cuando hay un conjunto de clases que tienen un grado de similitud pero difieren en su implementación de la clase abstracta.

Desventajas de la clase abstracta en C#

  1. Se puede agregar una clase abstracta a la jerarquía de clases solo si no existen clases abstractas.
  2. Los objetos de cualquier clase abstracta solo pueden ser referenciados, nunca creados.
  3. A pesar de que no se pueden crear instancias de clases abstractas, no permite el uso de variables o métodos estáticos.

Referencias

  1. https://books.google.co.in/books?hl=en&lr=&id=UbJa11wLcqYC&oi=fnd&pg=PA125&dq=Abstract+Class+in+C%23&ots=y9lmboLlHj&sig=kk5oYAJSHpmo-FyHphcAlkUh4cc&redir_esc=y#v=onepage&q=Abstract%20Class%20in%20C%23&f=false
  2. https://books.google.co.in/books?hl=en&lr=&id=-w9ftEtwPGwC&oi=fnd&pg=PP8&dq=Abstract+Class+in+C%23&ots=XXCx6-5nlm&sig=CYfs0myaTnm1anSz4QUGcZ65uS4&redir_esc=y#v=onepage&q=Abstract%20Class%20in%20C%23&f=false
x
2D vs 3D