I found this code here, precisely Example 12.4.1-3. Interface Initialization Does Not Initialize Superinterfaces, a bit below of given address.
interface I {
int i = 1, ii = Test.out("ii", 2);
}
interface J extends I {
int j = Test.out("j", 3), jj = Test.out("jj", 4);
}
interface K extends J {
int k = Test.out("k", 5);
}
class Test {
public static void main(String[] args) {
System.out.println(J.i);
System.out.println(K.j);
}
static int out(String s, int i) {
System.out.println(s + "=" + i);
return i;
}
}
And the answer is:
1
j=3
jj=4
3
Question is: How is jj=4 is printed?