Como dito acima interface proposta a assinatura de um contrato com as classes, onde somete conterá seus métodos sem implementação. 
public interface Autenticavel {
    boolean autentica(int senha);
}
Vantagens, imagine uma classe Diretor e uma gerente que tem uma função de autenticar:
package br.com.aulas.interfaces.autentica;
public class Diretor extends Funcionario implements Autenticavel {
    private int senha = 4321; 
    @Override
    public boolean autentica(int senha) {
        if (this.senha != senha) {
            return false;
        }
        return true;
    }
}
class Gerente extends Funcionario implements Autenticavel {
    private int senha = 123;
    @Override
    public boolean autentica(int senha) {
        if (this.senha != senha) {
            return false;
        }
        return true;
    }
}
Na hora de determinar qual método autenticar o sistema vai usar é somente usar a interface:
public class ValidaTeste {
    public static void main(String[] args) {
        Autenticavel diretor = new Diretor();
        Autenticavel gerente = new Gerente();
        SistemaInterno valida = new SistemaInterno(); 
        valida.login(diretor, 12);
        valida.login(gerente,123);
    }
class SistemaInterno {
    void login(Autenticavel autenticar, int senha){
        boolean valida = autenticar.autentica(senha);
        if (valida == true) {
            System.out.println("Logado com sucesso! ");
        } else {
            System.err.println("Senha invalida");
        }
    }