1
resposta

Dúvida na solução do exercício 3

public class Veiculo {
    public void liga() {
        System.out.println("Ligando Veiculo");
    }
}
class Carro extends Veiculo {
    public void liga() {
        System.out.println("Ligando Carro");
    }
}
class Moto extends Veiculo {
    public void liga() {
        System.out.println("Ligando Moto");
    }
}
public class Teste {

    public static void main(String[] args) {

        Veiculo m = new Moto();
        m.liga();

        Veiculo c = new Carro(); 
        c.liga();
    } 

}

Boa noite! O retorno nesse caso não deveria ser? :

Ligando Veiculo Ligando Moto Ligando Veiculo Ligando Carro

porquê uma vez que chamo o método liga, eu chamo também o da classe pai, não? se a cada vez que eu executo a metodo liga() o mesmo é um polimorfismo do metodo liga() da classe pai e na classe pai também tem um Sysout.print

1 resposta

Olá Vinícius, tudo bem?

O resultado do código vai ser

Ligando Moto
Ligando Carro

pois nas classes filhas o método liga() foi sobreescrito, ou seja, não será executado o método liga() da classe Veiculo

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software