Publicado em

Herança em C#

Partilhar:

Introdução

Herança é fundamental em programação orientada a objetos. Em C#, oferece uma forma eficaz de criar e organizar classes reutilizáveis. Através da herança, as classes partilham atributos e comportamentos, reduzindo a redundância e aumentando a modularidade.

Porque usar Herança?

Vantagens

  • Modularidade: Permite a separação de funcionalidades comuns a múltiplas classes.
  • Reutilização de Código: Classes derivadas herdam características da classe base.
  • Flexibilidade: Facilita a adição de funcionalidades específicas em subclasses.

Herança Múltipla e Interfaces

Em C#, não se pode herdar diretamente de múltiplas classes. No entanto, podemos implementar múltiplas interfaces. As interfaces são uma forma de contornar a restrição de herança múltipla, permitindo que uma classe tenha múltiplos comportamentos.

interface ICorrer {
  void Correr();
}

interface IComer {
  void Comer();
}

class Pessoa : ICorrer, IComer {
  public void Correr() {
    Console.WriteLine("Estou a correr.");
  }

  public void Comer() {
    Console.WriteLine("Estou a comer.");
  }
}

Classes Abstratas

Uma classe abstrata é uma classe que não pode ser instanciada diretamente. Serve como base para outras classes. Classes derivadas de uma classe abstrata devem implementar todos os seus métodos abstratos.

abstract class Animal {
    public abstract void EmitirSom();

    public void Dormir() {
        Console.WriteLine("O animal está a dormir.");
    }
}

class Cao : Animal {
    public override void EmitirSom() {
        Console.WriteLine("O cão late.");
    }
}

Práticas Recomendadas

  1. Evitar herança profunda: Muitos níveis de herança podem tornar o código confuso.
  2. Preferir composição em vez de herança: Se a relação não é estritamente "é um", considere usar composição.
  3. Usar classes abstratas e interfaces de forma judiciosa: Ambas oferecem flexibilidade, mas têm diferentes implicações.

Conclusão

A herança em C# é uma ferramenta robusta, mas deve ser usada com discernimento. Compreender os conceitos fundamentais e as práticas recomendadas é crucial para maximizar os benefícios da herança sem cair em armadilhas comuns.

Happy coding!