> What about this? > > interface A { > void foo(); > final int fun() { return 1; } > } > > interface B { > void bar(); > final int fun() { return 2; } > } > > class C : B, A { > } > > (new C).fun(); > > What does that do? Simple: overriding final methods is illegal.