Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Proyecto] Desafío: construyendo una nueva aplicación (SOLUCIÓN)

// Clase abstracta que representa un Vehículo (Abstracción) abstract class Vehiculo { // Atributos encapsulados (Encapsulamiento) private String marca; private int velocidad;

// Constructor
public Vehiculo(String marca) {
    this.marca = marca;
    this.velocidad = 0; // Velocidad inicial en 0
}

// Método getter para la marca
public String getMarca() {
    return marca;
}

// Método getter para la velocidad
public int getVelocidad() {
    return velocidad;
}

// Método setter para la velocidad
public void setVelocidad(int velocidad) {
    this.velocidad = velocidad;
}

// Método abstracto (Abstracción) que se implementará en las subclases
public abstract void acelerar(); // Polimorfismo

}

// Clase Coche que hereda de Vehiculo (Herencia) class Coche extends Vehiculo {

// Constructor que invoca al constructor de Vehiculo
public Coche(String marca) {
    super(marca);
}

// Implementación del método acelerar (Polimorfismo)
@Override
public void acelerar() {
    // Incrementa la velocidad de una manera específica para un coche
    setVelocidad(getVelocidad() + 10);
    System.out.println("El coche " + getMarca() + " acelera a " + getVelocidad() + " km/h.");
}

}

// Clase Motocicleta que hereda de Vehiculo (Herencia) class Motocicleta extends Vehiculo {

// Constructor que invoca al constructor de Vehiculo
public Motocicleta(String marca) {
    super(marca);
}

// Implementación del método acelerar (Polimorfismo)
@Override
public void acelerar() {
    // Incrementa la velocidad de una manera específica para una motocicleta
    setVelocidad(getVelocidad() + 15);
    System.out.println("La motocicleta " + getMarca() + " acelera a " + getVelocidad() + " km/h.");
}

}

// Clase principal para probar el código public class Main { public static void main(String[] args) { // Crear un coche y una motocicleta Vehiculo miCoche = new Coche("Toyota"); Vehiculo miMoto = new Motocicleta("Harley Davidson");

    // Acelerar ambos vehículos (Polimorfismo en acción)
    miCoche.acelerar();
    miMoto.acelerar();
}

}

1 respuesta

¡Hola! ¿Cómo estás?

Gracias por tu aporte en el foro. Su contribución es esencial para el crecimiento de nuestra comunidad en Alura.

Sigue así y no dudes en volver al foro si tienes alguna pregunta o dificultad.

Abrazos y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!