1+ class Animal {
2+ constructor ( animal ) {
3+ this . animal = animal ;
4+ }
5+
6+ sonido ( ) {
7+ console . log ( `${ this . animal } hace un sonido.` ) ;
8+ }
9+ }
10+
11+ class Perro extends Animal {
12+ sonido ( ) {
13+ console . log ( `${ this . animal } hace Guau Guau!` ) ;
14+ }
15+ }
16+ class Gato extends Animal {
17+ sonido ( ) {
18+ console . log ( `${ this . animal } hace Miau Miau!` ) ;
19+ }
20+ }
21+
22+ let perro1 = new Perro ( 'Videl' ) ;
23+ perro1 . sonido ( ) ;
24+ let gato1 = new Gato ( 'Kira' ) ;
25+ let gato2 = new Gato ( 'Wendy' ) ;
26+ let gato3 = new Gato ( 'Margo' ) ;
27+ gato1 . sonido ( ) ;
28+ gato2 . sonido ( ) ;
29+ gato3 . sonido ( ) ;
30+
31+ ////////////////////////////////////////////////////////////
32+ // Extra
33+
34+ class Employes {
35+ constructor ( id , name ) {
36+ this . id = id ;
37+ this . name = name ;
38+ this . employes = [ ] ;
39+ }
40+
41+ add ( employe ) {
42+ this . employes . push ( employe ) ;
43+ }
44+ show ( ) {
45+ console . log ( this . employes ) ;
46+ }
47+ }
48+
49+ class Manager extends Employes {
50+ showManager ( ) {
51+ console . log ( `${ this . name } está controlando todos los proyectos` ) ;
52+ }
53+ }
54+ class ProjectsManager extends Employes {
55+ constructor ( id , name , project ) {
56+ super ( id , name ) ;
57+ this . project = project ;
58+ }
59+ showPoject ( ) {
60+ console . log ( `${ this . project } está siendo dirigido por ${ this . name } ` ) ;
61+ }
62+
63+ }
64+ class Programmers extends Employes {
65+ constructor ( id , name , language ) {
66+ super ( id , name ) ;
67+ this . language = language ;
68+ }
69+ showProgrammer ( ) {
70+ console . log ( `${ this . name } está programando en ${ this . language } ` ) ;
71+ }
72+ }
73+
74+
75+ let manager = new Manager ( 1 , 'Jeronimo' ) ;
76+ let programmer1 = new Programmers ( 2 , 'Camila' , 'javascript' ) ;
77+ let programmer2 = new Programmers ( 3 , 'Jose' , 'Python' ) ;
78+ let programmer3 = new Programmers ( 4 , 'Thiago' , 'GO' ) ;
79+ let projectManager1 = new ProjectsManager ( 5 , 'Enzo' , 'proyecto 1' ) ;
80+ let projectManager2 = new ProjectsManager ( 5 , 'Riquelme' , 'proyecto 2' ) ;
81+ let projectManager3 = new ProjectsManager ( 5 , 'Esteban' , 'proyecto 3' ) ;
82+
83+ manager . add ( programmer1 ) ;
84+ manager . add ( programmer2 ) ;
85+ manager . add ( programmer3 ) ;
86+ projectManager1 . add ( programmer3 ) ;
87+ projectManager2 . add ( programmer2 ) ;
88+ projectManager3 . add ( programmer1 ) ;
89+
90+ programmer1 . add ( programmer3 ) ;
91+
92+ manager . showManager ( ) ;
93+ projectManager1 . showPoject ( ) ;
94+ projectManager2 . showPoject ( ) ;
95+ projectManager3 . showPoject ( ) ;
96+ programmer1 . showProgrammer ( )
97+ programmer2 . showProgrammer ( )
98+ programmer3 . showProgrammer ( )
99+
100+ projectManager3 . show ( ) ;
0 commit comments