public class Class1 {
  public <T> T foo() {
    return null;
  }
}

class Class2 extends Class1 {
  public <T> T bar() {
    return this.<T>foo();
  }
  public <T> T foo() {
    return super.<T>foo();
  }
}

