No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Abstracción

15/19
Recursos

Aportes 5

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Siempre que tenemos un método o una propiedad abstracta, la clase que los contenga debe ser abstracta.
De igual manera, debemos hacer el override en la clase que está heredando de esta clase abstracta en dicha propiedad o método

Las clases abstractas obligan a las clases que la heredan a implementar sus métodos abstractos:

  • Cuando en una clase abstracta se crean susmétodos, estos no pueden contener un cuerpo de dicho método.
  • Cuando se hereda de una clase abstracta que contiene métodos o propiedades abstractas por obligación la clase que lo hereda tiene que implementarla con la palabra reservada override y crear el cuerpo de los métodos.
## Clases abstractas en C#: **Definición:** Una clase abstracta define una plantilla para otras clases, pero no se pueden crear objetos de ella directamente. **Características:** * Contiene al menos un método abstracto (sin implementación). * Las clases que heredan de una clase abstracta deben implementar sus métodos abstractos. * No se pueden crear instancias de una clase abstracta. **Ejemplo:** ```js public abstract class Animal { public abstract void Hablar(); } public class Perro : Animal { public override void Hablar() { Console.WriteLine("Guau!"); } } public class Gato : Animal { public override void Hablar() { Console.WriteLine("Miau!"); } } ```**En este ejemplo:** * `Animal` es una clase abstracta con un método abstracto `Hablar`. * `Perro` y `Gato` heredan de `Animal` y implementan el método `Hablar`. **Uso:** * Las clases abstractas son útiles para definir una interfaz común para clases relacionadas. * Permiten la reutilización de código y la creación de jerarquías de clases.
**CONCEPTO DE ABSTRACCIÓN:**  Este concepto nos permite crear componentes más genéricos sin detalles específicos, lo que facilita la reutilización del código y la aplicación de patrones de diseño avanzados. **CLASE ABSTRACTA:** En nuestro proyecto de superhéroes en Visual Studio, tenemos las clases Superheroe y Antiheroe. Para aplicar la abstracción, crearemos una nueva clase que combina la abstracción con la herencia: la clase abstracta Héroe. Esta clase será padre de Superhéroe, ya que un superhéroe también puede ser considerado un héroe. Definiremos en esta clase un método abstracto llamado SalvarElMundo(), ya que todos los héroes, sin importar si tienen superpoderes, realizan esta acción sin dudarlo. Para indicar que el método SalvarElMundo() es abstracto, lo declararemos con la palabra clave abstract. Los métodos abstractos no tienen definida la implementación. **IMPLEMENTACIÓN DEL MÉTODO:** Al heredar la clase Superheroe de la clase Heroe, será necesario implementar el método abstracto SalvarElMundo() utilizando la palabra clave override. **PROPIEDADES ABSTRACTAS:** Crearemos una propiedad abstracta llamada Nombre en la clase Héroe para representar el nombre del héroe. Al heredar esta propiedad en la clase Superhéroe, se deberá implementar utilizando la palabra clave override. **CREACIÓN DE MÉTODOS NO ABSTRACTOS:** Además de los métodos abstractos, también podemos incluir métodos no abstractos en la clase Héroe, como SalvarLaTierra(). Estos métodos pueden ser utilizados directamente en las clases hijas sin necesidad de implementarlos nuevamente.
![](https://i.ibb.co/74FHsPT/ccc.png)