Cómo construir una jerarquía de clases: continuación
Mira el código en el editor nuevamente. Esto es lo que hemos hecho:
- Definimos una superclase llamada
Vehiculo
, la cual utiliza el métodogirar()
para implementar un esquema para poder girar, mientras que el giro en si es realizado porcambiardireccion()
; nota: dicho método está vacío, ya que vamos a poner todos los detalles en la subclase (dicho método a menudo se denomina método abstracto, ya que solo demuestra alguna posibilidad que será instanciada más tarde). - Definimos una subclase llamada
VehiculoOruga
(nota: es derivada de la claseVehiculo
) la cual instancia el métodocambiardireccion()
utilizando el método denominadocontrol_de_pista().
- Respectivamente, la subclase llamada
VehiculoTerrestre
hace lo mismo, pero usa el métodogirar_ruedas_delanteras()
para obligar al vehículo a girar.
La ventaja más importante (omitiendo los problemas de legibilidad) es que esta forma de código te permite implementar un nuevo algoritmo de giro simplemente modificando el método girar()
, lo cual se puede hacer en un solo lugar, ya que todos los vehículos lo obedecerán.
Así es como el el polimorfismo ayuda al desarrollador a mantener el código limpio y consistente.
Code
import timeclass Vehiculo:
def cambiardireccion(izquierda, on):
pass
def girar(izquierda):
cambiardireccion(izquierda, True)
time.sleep(0.25)
cambiardireccion(izquierda, False)
class VehiculoOruga(Vehiculo):
def control_de_pista(izquierda, alto):
pass
def cambiardireccion(izquierda, on):
control_de_pista(izquierda, on)
class VehiculoTerrestre(Vehiculo):
def girar_ruedas_delanteras(izquierda, on):
pass
def cambiardireccion(izquierda, on):
girar_ruedas_delanteras(izquierda, on)
{{ dockerServerErrorMsg }}
×
{{ errorMsg }}
×
{{ successMsg }}
×