En el ejercicio 5 de la clase 3 se plantea la pregunta de cual es la salida del siguiente codigo:
public class Vehiculo {
public void encender() {
System.out.println("Encendiendo vehículo");
}
}
class Carro extends Vehiculo {
public void encender() {
System.out.println("Encendiendo Carro");
}
}
class Moto extends Vehiculo {
public void encender() {
System.out.println("Encendiendo Moto");
}
}
public class Teste {
public static void main(String[] args) {
Vehiculo m = new Moto();
m.encender();
Vehiculo c = new Carro();
c.encender();
}
}
La salida es "encendiendo moto" y "encendiendo carro". Al elegir la respuesta correcta aparece una explicacion: "Correcto. Siempre será llamado el método más específico, primero el método de Moto, después de Carro". Mi pregunta es la siguiente: ¿puede ser que otra de las razones por la cual esa es la solucion correcta es que lo que se produce es la sobreescritura del metodo - public void encender() - de la clase padre en cada una de las clases hijas?
Gracias! Saludos!