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}")
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
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
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.