Tarea Tu tarea una vez acabado el tercer módulo consiste en: Crear un proyecto llamado Modulo3NombreApellido donde Nombre sea tu nombre y Apellido tu primer apellido. Ejemplo: Modulo3PabloRuiz En el proyecto deberá estar organizado por paquetes de modo que tengas, al menos, los paquetes clase, clase_abstracta, interf y lanzador. Dentro del paquete lanzador deberás crear una clase llamada Principal. En esta clase estará el método main. Vamos a modelizar un tienda de bicicletas. Tendrás una clase abstracta llamada Bicicleta Tendrás unas subclases de Bicicleta llamadas BiciMontania, BiciPaseo, Tandem. Estas subclases deberán sobreescribir al método toString de Object haciendo que digan de que tipo son, su color y precio. Todas las bicicletas tendrán dos campos comunes color (String) y precio (double). Quiero que todas las bicicletas implementen el método pintar, que lo que hará será cambiar el color pero me interesa que este método pintar también se pueda aplicar a otras posibles modelizaciones futuras que pudiera hacer, no debe ser exclusivo de las bicicletas. Además quiero que el coste de pintar (lo que sea) sea fijo y sea 90. Las bicicletas de montaña deberán almacenar la marcha que tiene la bici (pudiendo tomar valores únicamente entre 1 y 6). Las bicicletas de paseo deberán almacenar la velocidad a la que se circula. Los tandem deberán almacenar el número de asientos (pudiendo tomar únicamente los valores 2 y 3). Todos los campos de todas las clases deberán seguir los principios de encapsulamiento. La clase BiciMontania deberá tener un único constructor a través del cual se establezca el valor del color, precio y marcha. La clase BiciPaseo deberá tener 2 constructores, uno a través del cual se establezca el valor del color, precio y velocidad y otro a través del cual se establezca el color y precio. La clase Tandem deberá tener un único constructor a través del cual se establezca el valor del color, precio y número de asientos. Los constructores deberán controlar las condiciones existentes. La BiciMontania tendrá un método llamado aumentarMarcha que no tendrá parámetros y aumentará en 1 la marcha actual (siempre que cumpla las condiciones anteriores). También tendrá un método llamado disminuirMarcha que no tendrá parámetros y reducirá en 1 la marcha actual (siempre que cumpla las condiciones anteriores). No se podrá modificar la marcha desde ningún otro lugar. En la clase Principal deberás crear una lista con todas las bicicletas que tengas en la tienda. En este momento tienes 2 bicicletas de montaña, 1 bici de paseo y 2 tandems. Crea los objetos y añádelos a la lista. Posteriormente interacciona con ellos y al final recorre la lista para llamar al método toString de cada objeto.