Sobes.tech
Junior

Hable sobre los paradigmas y principios de la programación orientada a objetos.

sobes.tech AI

Respuesta de la IA

Paradigmas de POO:

  1. Encapsulación: Ocultación de datos y métodos dentro de la clase, proporcionando acceso a través de una interfaz.
  2. Herencia: Creación de nuevas clases (subclases) basadas en clases existentes (superclases), heredando sus propiedades y métodos.
  3. Polimorfismo: Capacidad de usar objetos de diferentes clases a través de una interfaz común, realizando comportamientos específicos de cada clase.

Principios de POO (SOLID):

  1. Principio de Responsabilidad Única (SRP): Cada clase debe tener una única responsabilidad.
  2. Principio de Abierto/Cerrado (OCP): Las clases deben estar abiertas a la extensión, pero cerradas a la modificación.
  3. Principio de Sustitución de Liskov (LSP): Los objetos de una clase base pueden ser reemplazados por objetos de una clase derivada sin alterar la corrección del programa.
  4. Principio de Segregación de Interfaces (ISP): Los clientes no deben depender de interfaces que no utilizan.
  5. Principio de Inversión de Dependencias (DIP): Los módulos de alto nivel no deben depender de módulos de bajo nivel. Ambos deben depender de abstracciones. Las abstracciones no deben depender de detalles. Los detalles deben depender de las abstracciones.

Ejemplo de encapsulación y herencia:

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

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

    public virtual void MakeSound()
    {
        Console.WriteLine("Algún sonido genérico");
    }
}

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

    // Sobrescribir método de la clase base
    public override void MakeSound()
    {
        Console.WriteLine("¡Guau!");
    }
}

Ejemplo de polimorfismo:

Animal myAnimal = new Dog("Buddy");
myAnimal.MakeSound(); // Imprimirá "¡Guau!"