Answer 2 is in fact correct.
Interfaces do not give any clue about implementation, they just tell which method should be implemented by classes wanting to be_like_a Interface. In fact, in this case if TestClass implements the body of void m1() it's ok, what would be wrong ???
When a class implements a method of an interface it does not invoke the method of the interface, so it does not have to bother with "What method should I invoke the one of T1 or the one of T2 ? This does not make sense.
T1 declares having a method void m1() and T2 also. So TestClass implements T1 and T2 so it has to provide an implementation for void m1() and that's it.
To access VALUE in TestClass you have to qualify that access (i.e. T1.VALUE or T2.VALUE) and everything works fine
HIH
------------------
Valentin Crettaz
Sun Certified Programmer for
Java 2 Platform