For a generic interface:
public interface Foo { void f(T t); }
The difference between the two fields:
publ
Object is the supertype of all types in java. However, Foo is not the supertype of all Foo. The supertype of all Foo is Foo. see http://docs.oracle.com/javase/tutorial/extra/generics/wildcards.html for more details.