Java: Interfaces Alcides Calsavara 1 Interfaces - definição básica Uma interface possui um nome, e define apenas métodos abstratos e constantes (descreve uma abstração, normalmente um comportamento) Uma interface não pode ser instanciada Uma interface pode ser implementada por uma ou mais classes Cada classe pode estender somente uma classe, mas pode implementar diversas interfaces (alternativa para a falta de herança múltipla em Java) 2 Interfaces - definição básica Uma classe que implementa uma interface deve implementar todos os métodos abstratos definidos pela interface (não pode deixar qualquer implementação para suas subclasses) Uma interface pode estender uma ou mais interfaces Se uma classe herda duas constantes de duas interfaces distintas mas com o mesmo nome, deve fazer referência a cada constante precedendo-a com o nome da interface e um ponto 3 Interfaces - como usar - exemplo 1 public interface F { int k = 10; // public, static, final (constante) int f ( ); // public, abstract } class C implements F { public int f ( ) { return k; } // tem que ser public } 4 Interfaces - como usar - exemplo 2 public interface F { int k = 10; int f( ); } interface G extends F // G e seus membros tem visibilidade package { void g( ); } class C implements G { public int f( ) { return k; } public void g( ) {} } 5 Interfaces - como usar - exemplo 3 public interface F { int k = 10; int f( ); } interface H { int k = 10; int h( ); } interface G extends F, H { void g( ); } class C implements G { public int f( ) { return F.k;} public int h( ) { return H.k;} public void g() {} } 6 Interfaces - como usar - exemplo 4 public interface F { int k = 10; int f( ); } interface H { int k = 10; int h( ); } class D {} class E extends D implements F, H { public int f( ) { return F.k;} public int h( ) { return H.k;} } 7