Questa de Certificacao

isso compila ?

interface TestInterface { 
  int var=7; 
} 

class TestObject implements TestInterface { 
    TestObject() { 
        System.out.println(var); 
    } 

	public static void main(String[] args) {
		TestObject o = new TestObject();
	}
} 

sim, e imprime 7, todos os campos definidos em uma interface são implicitamente public, static e final, isto é, constantes

neste caso,

int var = 7;

é o mesmo que

public static final int var = 7;

tanto que se você mudar o código para:

interface TestInterface { 
  int var=7; 
} 

class TestObject { 
    TestObject() { 
	    System.out.println(TestInterface.var);
    } 

   public static void main(String[] args) { 
      TestObject o = new TestObject(); 
   } 
} 

dá na mesma

eu acho que compila normalmente


C:marciolxjava2003cert>javac TestObject.java

C:marciolxjava2003cert>java TestObject
7

C:marciolxjava2003cert>