Linux, Open-source, Programação e Produtividade

INC - Colisão de Nomes de Métodos

Jonas Abreu em 03/03/2008

O que acontece quando uma classe sua implementa duas interfaces que tem um método com o mesmo nome? Compila!

interface A {
    void x();
}

interface B {
    void x();
}

class C implements A, B {
    public void x() {
    }
}

E quando sua classe herda um método que tem o mesmo nome do método de uma interface que ela implementa? Também compila!

class A {
    void x(){
    }
}

interface B {
    void x();
}

class C extends A implements B {
    public void x() {
    }
}

Notem que A não precisa implementar B.

E quando você faz herança múltipla de interfaces? Mais uma que compila.

interface A {
    void x();
}

interface B {
    void x();
}

interface C extends A,B {

}

Essas aqui eu só acreditei na hora em que o compilador simplesmente não reclamou. Se um dia antes de eu fazer esses testes me perguntassem o que acontecia, eu falaria sem medo nenhum que não compilava. Mas compila.

Creative Commons License
INC - Colisão de Nomes de Métodos de Jonas Abreu está licenciado sob Creative Commons License.