Eu não entendi a resposta da questão, o que quer dizer um erro de copy e paste?
Eu não entendi a resposta da questão, o que quer dizer um erro de copy e paste?
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!