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
VehiculoTerrestrehace 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 }}
×