public class MyGeneric {} public class Extend1 extends MyGeneric {} public class Extend2 extends MyGeneric
There is no problem with:
public class E{} public class Foo{}
Because in the context of Foo, E is a type.
Foo
E