Skip to content

Commit f3510a0

Browse files
committed
#28 - Python
1 parent 06789af commit f3510a0

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed
+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
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

Comments
 (0)