Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não entendi a resposta da questão.

Eu não entendi a resposta da questão, o que quer dizer um erro de copy e paste?

1 resposta
solução!

Olá, Vitor.

Tudo bem?

Ao tentar compilar esse código, você encontrará um erro de compilação. O motivo é que nas linhas onde os métodos y estão definidos, você tem variáveis c e d que não foram declaradas. Deveriam ser b em vez de c e d.

Aqui está a correção:

class D extends C {
    void x() { System.out.println(1); }
}
class C extends B {
    void x() { System.out.println(2); }
}
class B {
    void x() { System.out.println(3); }
    void y(B b) {
        b.x();
    }
    void y(C b) {
        b.x(); // Corrigido de c.x() para b.x()
    }
    void y(D b) {
        b.x(); // Corrigido de d.x() para b.x()
    }
}
class A {
    public static void main(String[] args) {
        new B().y(new C());
    }
}

Agora, o código compilaria corretamente. Esse tipo de erro é comum quando alguém copia e cola código de uma classe para outra e esquece de atualizar os nomes das variáveis. Por isso, é chamado de "erro de copy e paste". Basicamente é quando código é copiado e colado para reaproveitar partes, porém sem a devida adaptação, causando erro.

Espero ter ajudado e bons estudos!