Declaração implícita de variáveis:
- Variáveis declaradas em uma interface são automaticamente public, static e final.
- Útil para criar constantes compartilhadas em programas grandes.
Exemplo de código:
// Interface que contém constantes
interface IConst {
int MIN = 0;
int MAX = 10;
String ERRORMSG = "Boundary Error";
}
class IConstD implements IConst {
public static void main(String[] args) {
int nums[] = new int[MAX];
for (int i = MIN; i < 11; i++) {
if (i >= MAX)
System.out.println(ERRORMSG);
else {
nums[i] = i;
System.out.print(nums[i] + " ");
}
}
}
}
Nota: Apesar de útil para constantes, essa técnica pode ser controversa.
Interfaces podem ser estendidas
Herança em interfaces:
- Interfaces podem herdar outras interfaces com a palavra-chave extends.
- Uma classe que implementa uma interface derivada deve implementar todos os métodos de toda a cadeia de interfaces.
Exemplo de código:
// Interface A
interface A {
void meth1();
void meth2();
}
// Interface B estende A
interface B extends A {
void meth3();
}
// Classe que implementa A e B
class MyClass implements B {
public void meth1() {
System.out.println("Implement meth1().");
}
public void meth2() {
System.out.println("Implement meth2().");
}
public void meth3() {
System.out.println("Implement meth3().");
}
}
class IFExtend {
public static void main(String[] args) {
MyClass ob = new MyClass();
ob.meth1();
ob.meth2();
ob.meth3();
}
}
Importante: Se você remover a implementação de meth1(), ocorrerá um erro de compilação, pois todos os métodos da interface devem ser implementados.