Herencia Simple
Permite que una clase hija herede atributos y métodos de una clase padre.
class Animal:
def hablar(self):
pass
class Perro(Animal):
def hablar(self):
return "Guau!"
class Gato(Animal):
def hablar(self):
return "Miau!"
Duck Typing
"If it walks like a duck and quacks like a duck, it's a duck."
En Python, no importa el tipo del objeto, sino lo que puede hacer. Si un objeto tiene el método necesario, Python lo usará sin importar su jerarquía de herencia.
def hacer_hablar(objetos):
for obj in objetos:
print(obj.hablar())
# No necesitan heredar de 'Animal' para funcionar aquí
hacer_hablar([Perro(), Gato()])