Fundamentos de la Programación Orientada a Objetos (POO)

La Programación Orientada a Objetos (POO) es un paradigma de programación que organiza el diseño del software en torno a objetos.

Los objetos son instancias de clases, y pueden tener:


Conceptos Clave

  1. Clase:
  2. Objeto:
  3. Atributo:
  4. Método:

4 Pilares de la POO

  1. Herencia:

    Ejemplo:

    class Animal:
        def __init__(self, nombre):
            self.nombre = nombre
        def hacer_sonido(self):
            return "Hace un sonido genérico"
    
    class Perro(Animal):  # Hereda de Animal
        def hacer_sonido(self):
            return "Ladra"
    
    
  2. Encapsulamiento:

    Ejemplo:

    class CuentaBancaria:
        def __init__(self, saldo):
            self.__saldo = saldo  # Atributo privado
        def depositar(self, monto):
            if monto > 0:
                self.__saldo += monto
        def obtener_saldo(self):
            return self.__saldo
    
    
  3. Abstracción:

    Ejemplo:

    from abc import ABC, abstractmethod
    
    class Forma(ABC):  # Clase abstracta
        @abstractmethod
        def calcular_area(self):
            pass
    
    class Rectangulo(Forma):
        def __init__(self, ancho, alto):
            self.ancho = ancho
            self.alto = alto
        def calcular_area(self):
            return self.ancho * self.alto
    
    
  4. Polimorfismo:

    Ejemplo:

    class Animal:
        def hacer_sonido(self):
            return "Sonido genérico"
    class Perro(Animal):
        def hacer_sonido(self):
            return "Ladra"
    class Gato(Animal):
        def hacer_sonido(self):
            return "Maúlla"
    
    def emitir_sonidos(animales):
        for animal in animales:
            print(animal.hacer_sonido())
    
    animales = [Perro(), Gato(), Animal()]
    emitir_sonidos(animales)
    # Salida:
    # Ladra
    # Maúlla
    # Sonido genérico