Sobes.tech
Junior

Fale sobre paradigmas e princípios da programação orientada a objetos.

sobes.tech IA

Resposta da IA

Paradigmas de POO:

  1. Encapsulamento: Ocultação de dados e métodos dentro de uma classe, fornecendo acesso através de uma interface.
  2. Herança: Criação de novas classes (subclasses) baseadas em classes existentes (superclasses), herdando suas propriedades e métodos.
  3. Polimorfismo: Capacidade de usar objetos de diferentes classes através de uma interface comum, realizando comportamentos específicos de cada classe.

Princípios de POO (SOLID):

  1. Princípio da Responsabilidade Única (SRP): Cada classe deve ter uma única responsabilidade.
  2. Princípio Aberto/Fechado (OCP): As classes devem estar abertas à extensão, mas fechadas à modificação.
  3. Princípio da Substituição de Liskov (LSP): Os objetos de uma classe base podem ser substituídos por objetos de uma classe derivada sem alterar a correção do programa.
  4. Princípio da Segregação de Interfaces (ISP): Os clientes não devem depender de interfaces que não utilizam.
  5. Princípio da Inversão de Dependências (DIP): Os módulos de alto nível não devem depender de módulos de baixo nível. Ambos devem depender de abstrações. As abstrações não devem depender de detalhes. Os detalhes devem depender das abstrações.

Exemplo de encapsulamento e herança:

// Classe base
public class Animal
{
    public string Name { get; set; }

    public Animal(string name)
    {
        Name = name;
    }

    public virtual void MakeSound()
    {
        Console.WriteLine("Algum som genérico");
    }
}

// Classe derivada
public class Dog : Animal
{
    public Dog(string name) : base(name)
    {
    }

    // Sobrescrever método da classe base
    public override void MakeSound()
    {
        Console.WriteLine("Au au!");
    }
}

Exemplo de polimorfismo:

Animal myAnimal = new Dog("Buddy");
myAnimal.MakeSound(); // Vai imprimir "Au au!"