Sistema de Vehículos
Objetivo:
Aplicar herencia, encapsulamiento y polimorfismo en un contexto diferente al de animales.
1. Clase base Vehiculo
Crea una clase llamada Vehiculo con:
● Atributos:
○ marca
○ modelo
○ __velocidad_maxima (atributo privado)
● Método descripcion() que imprime la marca y modelo.
● Método tipo_vehiculo() sin implementar (usa raise
NotImplementedError).
2. Subclases
Crea tres clases que hereden de Vehiculo:
● Carro
● Moto
● Bicicleta
Cada una debe:
● Implementar el método tipo_vehiculo() con una descripción diferente.
● Establecer la velocidad máxima en el constructor.
● Implementar un método sonido_bocina() que devuelva un sonido propio.
3. Encapsulamiento
Agrega los métodos get_velocidad_maxima() y set_velocidad_maxima() a la
clase base para acceder al atributo privado.
4. Polimorfismo con una función
Crea una función mostrar_info(vehiculo) que imprima:
● Marca y modelo
● Tipo de vehículo
● Sonido de la bocina
● Velocidad máxima
Esta función debe funcionar con cualquier tipo de vehículo.
5. Programa principal
En tu bloque main:
● Crea una lista de vehículos: al menos un carro, una moto y una bicicleta.
● Usa la función mostrar_info() para mostrar la información de todos los
vehículos.
Resultado esperado:
Toyota Corolla
Tipo: Carro
Bocina: Beep Beep!
Velocidad máxima: 180 km/h
------------------------------
Yamaha R1
Tipo: Moto
Bocina: Meeep!
Velocidad máxima: 299 km/h
------------------------------
Bianchi Sprint
Tipo: Bicicleta
Bocina: ¡Ring Ring!
Velocidad máxima: 40 km/h