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