06.13 Python – Clases – Sobrecarga y Polimorfismo

La sobrecarga de operadores, también conocida como “operator overloading” en inglés, es una característica en Python que te permite definir el comportamiento de operadores integrados como +, -, *, /, ==, !=, entre otros, para objetos de tus propias clases.

class Persona:
    def __init__(self,nombre,ventas):
        self.nombre=nombre
        self.ventas=ventas

    def __add__(self, other):
        res=Persona("TOTAL",self.ventas+other.ventas)
        return(res)

    def __str__(self):
        return f"Nombre: {self.nombre} Ventas: {self.ventas}"

a=Persona("Javi",23)
b=Persona("Maria",55)
c=a+b
print(a)
print(b)
print(c)
class Perro:
    def sonido(self):
        return “Guau!"

class Gato:
    def sonido(self):
        return "Miau!"

class Vaca:
    def sonido(self):
        return "Muu!"

# Función que utiliza el polimorfismo para acceder al método "sonido" de diferentes objetos
def hacer_sonido(animal):
    return animal.sonido()

# Crear instancias de las clases
perro = Perro()
gato = Gato()
vaca = Vaca()

# Llamar a la función que utiliza polimorfismo
print(hacer_sonido(perro))  # Resultado: "Woof!"
print(hacer_sonido(gato))   # Resultado: "Miau!"
print(hacer_sonido(vaca))   # Resultado: "Muu!"

Related Posts