File tree Expand file tree Collapse file tree 1 file changed +64
-0
lines changed
Roadmap/28 - SOLID LSP/javascript Expand file tree Collapse file tree 1 file changed +64
-0
lines changed Original file line number Diff line number Diff line change @@ -38,3 +38,67 @@ class BowlingBallLSP extends Ball {
38
38
}
39
39
}
40
40
41
+ class Vehiculo {
42
+ constructor ( ) {
43
+ this . velocidad = 0 ;
44
+ }
45
+
46
+ acelerar ( incremento ) {
47
+ this . velocidad += incremento ;
48
+ console . log ( `Acelerando: Velocidad actual = ${ this . velocidad } km/h` ) ;
49
+ }
50
+
51
+ frenar ( decremento ) {
52
+ this . velocidad = Math . max ( 0 , this . velocidad - decremento ) ;
53
+ console . log ( `Frenando: Velocidad actual = ${ this . velocidad } km/h` ) ;
54
+ }
55
+ }
56
+
57
+ class Coche extends Vehiculo {
58
+ constructor ( marca ) {
59
+ super ( ) ;
60
+ this . marca = marca ;
61
+ }
62
+
63
+ acelerar ( incremento ) {
64
+ super . acelerar ( incremento ) ;
65
+ console . log ( `El coche ${ this . marca } ha acelerado.` ) ;
66
+ }
67
+ }
68
+
69
+ class Bicicleta extends Vehiculo {
70
+ constructor ( tipo ) {
71
+ super ( ) ;
72
+ this . tipo = tipo ;
73
+ }
74
+
75
+ acelerar ( incremento ) {
76
+ super . acelerar ( incremento ) ;
77
+ console . log ( `La bicicleta de tipo ${ this . tipo } ha acelerado.` ) ;
78
+ }
79
+ }
80
+
81
+ class Motocicleta extends Vehiculo {
82
+ constructor ( modelo ) {
83
+ super ( ) ;
84
+ this . modelo = modelo ;
85
+ }
86
+
87
+ acelerar ( incremento ) {
88
+ super . acelerar ( incremento ) ;
89
+ console . log ( `La motocicleta modelo ${ this . modelo } ha acelerado.` ) ;
90
+ }
91
+ }
92
+
93
+ function probarVehiculo ( vehiculo ) {
94
+ vehiculo . acelerar ( 20 ) ;
95
+ vehiculo . frenar ( 10 ) ;
96
+ }
97
+
98
+ const miCoche = new Coche ( 'Toyota' ) ;
99
+ const miBicicleta = new Bicicleta ( 'Montaña' ) ;
100
+ const miMotocicleta = new Motocicleta ( 'Yamaha' ) ;
101
+
102
+ probarVehiculo ( miCoche ) ;
103
+ probarVehiculo ( miBicicleta ) ;
104
+ probarVehiculo ( miMotocicleta ) ;
You can’t perform that action at this time.
0 commit comments