Programación orientada a objetos

Clases

Las clases son como plantillas que definen los atributos y métodos que tendrán los objetos que se creen a partir de ellas. Se definen con la palabra clave class.

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

def saludar(self):
print(f"Hola, mi nombre es {self.nombre}")

 

Objetos

Los objetos son instancias de una clase. Se crean con la palabra clave new.

persona1 = Persona("Jose", 2022)
persona2 = Persona("Ana", 30)

persona1.saludar() # Salida: Hola, mi nombre es Jose
persona2.saludar() # Salida: Hola, mi nombre es Ana

 

Herencia

La herencia permite que una clase herede los atributos y métodos de otra clase. Se define con la palabra clave hereda de.

class Estudiante(Persona):
def __init__(self, nombre, edad, carrera):
super().__init__(nombre, edad)
self.carrera = carrera

def estudiar(self):
print(f"{self.nombre} está estudiando {self.carrera}")

estudiante1 = Estudiante("Juan", 21, "Ingeniería")
estudiante1.saludar() # Salida: Hola, mi nombre es Juan
estudiante1.estudiar() # Salida: Juan está estudiando Ingeniería

 

Polimorfismo

El polimorfismo permite que diferentes objetos respondan al mismo mensaje de diferentes maneras. Se logra mediante la sobreescritura de métodos.

class Estudiante(Persona):
def __init__(self, nombre, edad, carrera):
super().__init__(nombre, edad)
self.carrera = carrera

def estudiar(self):
print(f"{self.nombre} está estudiando {self.carrera}")

estudiante1 = Estudiante("Juan", 21, "Ingeniería")
estudiante1.saludar() # Salida: Hola, mi nombre es Juan
estudiante1.estudiar() # Salida: Juan está estudiando Ingeniería

 

La programación orientada a objetos es un paradigma de programación que organiza el código en torno a objetos. Las clases definen los atributos y métodos de los objetos, la herencia permite reutilizar código y el polimorfismo permite que diferentes objetos respondan al mismo mensaje de diferentes maneras.