Skip to content

Commit 5efd062

Browse files
#28-javascript
1 parent 6c39865 commit 5efd062

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

Roadmap/28 - SOLID LSP/javascript/caterinarodriguezdev.js

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,67 @@ class BowlingBallLSP extends Ball {
3838
}
3939
}
4040

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);

0 commit comments

Comments
 (0)