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 {
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 ) ;
You can’t perform that action at this time.
0 commit comments