DEV Community

Variáveis em interfaces e extensão

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] + " ");
            }
        }
    }
}

Enter fullscreen mode Exit fullscreen mode

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();
    }
}

Enter fullscreen mode Exit fullscreen mode

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.

Top comments (0)