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>