Example:
abstract class MyList<T> extends AbstractList<T> { private List<T> elements; // type parameter 'T' hides type parameter 'T' public <T> T[] toArray(T[] array) { return elements.toArray(array); } }