class A { public T get(T key) { return null; } } class B extends A { private A a; @Override public K get(K key) { return a.get(key); } }