1
resposta

Interface só pode ter métodos abstratos?

Ao meu entender uma interface poderia ter metodos sem ser abstratos.

Obvio que seriam metodos nao concretos (sem body). Outro motivo que por ser interface ja impede que sejam instanciados.

1 resposta

A partir da Java 8, as interfaces permitem defaut method:

public interface Veiculo {

    String  getMarca();    

    default String ligarAlarme() {
        return "Alarme ligado";
    }

}

que estará disponível nas implementações desta interface:

public class Carro implements Veiculo {
...
}

uso:

public static void main(String[] args) {

    Carro carro = new Carro();

    System.out.println( carro.ligarAlarme() ) ;  //<-- chamada método default

    ...

}