1+ # Superclase
2+ class Animal :
3+ def __init__ (self , name ):
4+ self .name = name
5+
6+ def sound (self ):
7+ pass
8+
9+
10+ # Herencia
11+ # Subclase
12+ class Dog (Animal ):
13+ def __init__ (self , name , kind ):
14+ super ().__init__ (name )
15+ self .kind = kind
16+
17+ # Polimorfismo
18+ def sound (self ):
19+ print ("Guau!" )
20+
21+
22+ class Cat (Animal ):
23+ def __init__ (self , name , kind ):
24+ super ().__init__ (name )
25+ self .kind = kind
26+
27+ def sound (self ):
28+ print ("Miau!" )
29+
30+
31+ d1 = Dog ("Tobby" , "Yorkshire" )
32+ c1 = Cat ("Lucas" , "Desconocido" )
33+
34+
35+ for obj in (d1 , c1 ):
36+ print (obj .name , obj .kind )
37+ obj .sound ()
38+
39+
40+ """
41+ Extra
42+ """
43+
44+ class Employee :
45+ def __init__ (self , id , firstname , lastname ):
46+ self .id = id
47+ self .firstname = firstname
48+ self .lastname = lastname
49+
50+ class Manager (Employee ):
51+ def __init__ (self , id , firstname , lastname ):
52+ super ().__init__ (id , firstname , lastname )
53+ self .role = "Manager"
54+ self .employee_in_charge = []
55+
56+ def add_employee_in_charge (self , employee ):
57+ self .employee_in_charge .append (employee )
58+
59+ class ProjectManager (Employee ):
60+ def __init__ (self , id , firstname , lastname ):
61+ super ().__init__ (id , firstname , lastname )
62+ self .projects = []
63+
64+ def add_project (self , project ):
65+ self .projects .append (project )
66+
67+
68+ class Developer (Employee ):
69+ def __init__ (self , id , firstname , lastname , language ):
70+ super ().__init__ (id , firstname , lastname )
71+ self .language = language
72+
73+ def code (self ):
74+ print (f"{ self .firstname } is programming in { self .language } " )
75+
76+ # Creando instancias de los colaboradores
77+
78+ manager = Manager ("001" , "Duban" , "Quiroga" )
79+ print (manager .id , manager .firstname , manager .lastname , manager .role )
80+ p_man = ProjectManager ("002" , "Toji" , "Fushiguro" )
81+ p_man .add_project ("Project1" )
82+ print (p_man .id , p_man .firstname , p_man .lastname )
83+ print (p_man .projects )
84+ developer1 = Developer ("003" , "Gojo" , "Satoru" , "Python" )
85+ developer2 = Developer ("004" , "Suguru" , "Geto" , "Java" )
86+
87+ for obj in (p_man , developer1 , developer2 ):
88+ manager .add_employee_in_charge (obj )
89+
90+ for empl in manager .employee_in_charge :
91+ print (f"Employee in charge: { empl .firstname } { empl .lastname } , ID: { empl .id } " )
0 commit comments