1+ """
2+ * DIFICULTAD EXTRA (opcional):
3+ * Crea una jerarquía de vehículos. Todos ellos deben poder acelerar y frenar, así como
4+ * cumplir el LSP.
5+ * Instrucciones:
6+ * 1. Crea la clase Vehículo.
7+ * 2. Añade tres subclases de Vehículo.
8+ * 3. Implementa las operaciones "acelerar" y "frenar" como corresponda.
9+ * 4. Desarrolla un código que compruebe que se cumple el LSP.
10+
11+ """
12+
13+ class Vehiculo :
14+ def __init__ (self , velocidad = 0 ) -> None :
15+ self .velocidad = velocidad
16+
17+ def acelera (self , aceleracion ):
18+ self .velocidad += aceleracion
19+ print (f"Velocidad { self .velocidad } " )
20+
21+ def frena (self , frenado ):
22+ if self .velocidad <= 0 :
23+ self .velocidad = 0
24+ self .velocidad -= frenado
25+ print (f"Velocidad { self .velocidad } " )
26+
27+
28+ class Turismo (Vehiculo ):
29+ def acelera (self , aceleracion ):
30+ print ("El turismo está acelerando" )
31+ super ().acelera (aceleracion )
32+ def frena (self , frenado ):
33+ print ("El turismo está frenando" )
34+ super ().frena (frenado )
35+
36+ class Furgoneta (Vehiculo ):
37+ def acelera (self , aceleracion ):
38+ print ("La furgoneta está acelerando" )
39+ super ().acelera (aceleracion )
40+ def frena (self , frenado ):
41+ print ("La furgoneta está frenando" )
42+ super ().frena (frenado )
43+
44+ class Camion (Vehiculo ):
45+ def acelera (self , aceleracion ):
46+ print ("El camión está acelerando" )
47+ super ().acelera (aceleracion )
48+ def frena (self , frenado ):
49+ print ("El camión está frenando" )
50+ super ().frena (frenado )
51+
52+
53+ def aplica_LSP (vehiculo ):
54+ vehiculo .acelera (10 )
55+ vehiculo .frena (5 )
56+
57+ mi_vehiculo = Vehiculo ()
58+ turismo = Turismo ()
59+ furgoneta = Furgoneta ()
60+ camion = Camion ()
61+
62+ aplica_LSP (mi_vehiculo )
63+ aplica_LSP (turismo )
64+ aplica_LSP (furgoneta )
65+ aplica_LSP (camion )
0 commit comments