Skip to content

Commit ca62a29

Browse files
Diego Rojas MuñozDiego Rojas Muñoz
Diego Rojas Muñoz
authored and
Diego Rojas Muñoz
committed
#9 - Python
1 parent 240b6dd commit ca62a29

File tree

1 file changed

+126
-0
lines changed

1 file changed

+126
-0
lines changed
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# 09 - Herencias
2+
3+
# Clase padre
4+
class Animal:
5+
6+
def __init__(self, nombre, edad):
7+
self.nombre = nombre
8+
self.edad = edad
9+
10+
def sonido(self):
11+
print('Algun sonido')
12+
13+
def presentarse(self):
14+
print(f'Hola, soy {self.nombre}, y tengo {self.edad} años.')
15+
16+
# Clase Hija
17+
class Perro(Animal):
18+
19+
def __init__(self, nombre, edad, raza):
20+
# Llamamos al constructor de la clase padre
21+
super().__init__(nombre, edad)
22+
self.raza = raza
23+
24+
# Sobrescribimos el metodo sonido
25+
def sonido(self):
26+
print('¡Guau, guau!')
27+
28+
# Agregamos un metodo especifico del Perrro
29+
def perseguir_cola(self):
30+
print(f'{self.nombre} esta persiguiendo su cola')
31+
32+
class Gato(Animal):
33+
34+
def __init__(self, nombre, edad, color):
35+
# Llamamos al constructor de la clase padre
36+
super().__init__(nombre, edad)
37+
self.color = color
38+
39+
# Sobrescribimos el metodo sonido
40+
def sonido(self):
41+
print('Miau')
42+
43+
# Agregamos un metodo especifico del Gato
44+
def dormir(self):
45+
print(f'{self.nombre} esta durmiendo.')
46+
47+
48+
mi_perro = Perro('Max', 3, 'Pug')
49+
mi_perro.presentarse()
50+
mi_perro.sonido()
51+
mi_perro.perseguir_cola()
52+
53+
mi_gato = Gato('Luna', 2, 'Negro')
54+
mi_gato.presentarse()
55+
mi_gato.sonido()
56+
mi_gato.dormir()
57+
58+
59+
# Extra
60+
61+
class Empleado:
62+
63+
def __init__(self, id, nombre, cargo):
64+
self.id = id
65+
self.nombre = nombre
66+
self.cargo = cargo
67+
self.empleados = []
68+
69+
def presentarse(self):
70+
print(f'Hola, mi nombre es {self.nombre} y mi cargo es {self.cargo}')
71+
72+
def agregar_empleado(self, empleados):
73+
self.empleados.append(empleados)
74+
75+
def listar_empleados(self):
76+
if len(self.empleados) >= 1:
77+
print(f'{self.nombre} tiene a cargo {len(self.empleados)} empleados.')
78+
else:
79+
print(f'{self.nombre} no tiene empleados a cargo.')
80+
81+
82+
class Gerente(Empleado):
83+
84+
def __init__(self, id, nombre, cargo):
85+
super().__init__(id, nombre, cargo)
86+
87+
def planifica(self):
88+
print(f'Como {self.cargo}, estoy planificando los objetivos del proximo año')
89+
90+
91+
class GerenteProyecto(Empleado):
92+
93+
def __init__(self, id, nombre, cargo):
94+
super().__init__(id, nombre, cargo)
95+
96+
def ejecuta(self):
97+
print(f'Como {self.cargo}, estoy ejecutando los objetivos de este año')
98+
99+
100+
class Programador(Empleado):
101+
102+
def __init__(self, id, nombre, cargo):
103+
super().__init__(id, nombre, cargo)
104+
105+
def desarrolla(self):
106+
print(f'Como {self.cargo}, estoy desarrollando un programa para alcanzar los objetivos.')
107+
108+
109+
gerente_1 = Gerente(1, 'Jorge', 'Gerente')
110+
gerente_1.presentarse()
111+
gerente_1.planifica()
112+
113+
gerente_proyecto_1 = GerenteProyecto(2, 'Felipe', 'Gerente de Proyectos')
114+
gerente_proyecto_1.presentarse()
115+
gerente_proyecto_1.ejecuta()
116+
117+
programador_1 = Programador(3, 'Raul', 'Programador')
118+
programador_1.presentarse()
119+
programador_1.desarrolla()
120+
121+
gerente_1.agregar_empleado(gerente_proyecto_1)
122+
gerente_proyecto_1.agregar_empleado(programador_1)
123+
124+
gerente_1.listar_empleados()
125+
gerente_proyecto_1.listar_empleados()
126+
programador_1.listar_empleados()

0 commit comments

Comments
 (0)