Sobes.tech
Junior

¿Qué es la abstracción en programación?

sobes.tech AI

Respuesta de la IA

La abstracción es un mecanismo que permite ocultar los detalles de implementación y proporcionar una representación general del sistema o sus componentes. Se centra en "qué" hace un objeto, y no en "cómo" lo hace.

En C#, la abstracción se implementa a través de:

  • Clases abstractas: Pueden contener métodos abstractos (sin implementación) y miembros normales. No se puede crear una instancia de una clase abstracta.
    // Clase abstracta con método abstracto
    public abstract class Shape
    {
        public abstract double GetArea(); // Método abstracto
        public string Name { get; set; }
    
        public void DisplayInfo() // Método normal
        {
            Console.WriteLine($"Forma: {Name}");
        }
    }
    
  • Interfaces: Definen un contrato que debe implementar una clase. Solo contienen declaraciones de métodos, propiedades, eventos e indexadores (hasta C# 8), o pueden contener una implementación por defecto (desde C# 8).
    // Interfaz
    public interface IDrawable
    {
        void Draw(); // Método sin implementación
    }
    

Principios de abstracción:

  • Encapsulación: Unión de datos y métodos que operan sobre esos datos en un solo bloque. Favorece la ocultación de la estructura interna.
  • Herencia: Permite crear nuevas clases basadas en existentes, heredando sus propiedades y métodos, y añadiendo o redefiniendo funcionalidades.

Aplicación de la abstracción:

  • Simplificación de sistemas complejos.
  • Aumento de la flexibilidad del código.
  • Mejora del mantenimiento.
  • Creación de componentes reutilizables.