SCJP Mock Q6

a) erro de compilação
b) compila, roda e imprime 10
c) compila, roda e imprime 20
d) compila, roda e lança runtime exception
e) compila, roda e trava a máquina virtual

interface I1 {
	int i = 10;
}

interface I2 {
	int i = 20;
}

public class GUJ6 implements I1, I2 {
	public static void main (String [] args) {
		System.out.println (i);
	}
}

letra a
pois o i ocorre duas vezes e o compilador não sabe qual usar.

[quote=“cariocathi”]letra a
pois o i ocorre duas vezes e o compilador não sabe qual usar.[/quote]

correto! :slight_smile:

desculpe a ignorancia, mas tb eh porq as interfaces nao tem nenhum metodo ? :?

não :slight_smile:

você pode declarar uma interface sem nada, assim:

interface I {}

ou só com constantes assim:

interface I {
    int i = 10;
}

lembrando que esses atributos serão sempre public static final independente de você explicitar ou não e devem ser sempre inicializados na declaração.

Interfaces não precisam necessariamente ter métodos nem variáveis.
Um exemplo disso é a interface Serializable.