Sobes.tech
Junior

O que é abstração na programação?

sobes.tech IA

Resposta da IA

A abstração é um mecanismo que permite ocultar detalhes de implementação e fornecer uma representação geral do sistema ou seus componentes. Ela foca no "o que" um objeto faz, e não no "como" o faz.

Em C#, a abstração é implementada através de:

  • Classes abstratas: Podem conter métodos abstratos (sem implementação) e membros normais. Não é possível criar uma instância de uma classe abstrata.
    // Classe abstrata com método abstrato
    public abstract class Shape
    {
        public abstract double GetArea(); // Método abstrato
        public string Name { get; set; }
    
        public void DisplayInfo() // Método normal
        {
            Console.WriteLine($"Forma: {Name}");
        }
    }
    
  • Interfaces: Definem um contrato que uma classe deve implementar. Contêm apenas declarações de métodos, propriedades, eventos e indexadores (até C# 8), ou podem conter uma implementação padrão (a partir do C# 8).
    // Interface
    public interface IDrawable
    {
        void Draw(); // Método sem implementação
    }
    

Princípios de abstração:

  • Encapsulamento: Agrupamento de dados e métodos que operam sobre esses dados em um único bloco. Favorece a ocultação da estrutura interna.
  • Herança: Permite criar novas classes baseadas em classes existentes, herdando suas propriedades e métodos, e adicionando ou redefinindo funcionalidades.

Aplicação da abstração:

  • Simplificação de sistemas complexos.
  • Aumento da flexibilidade do código.
  • Melhoria na manutenção.
  • Criação de componentes reutilizáveis.