A list declared to hold objects of a type T can also hold objects that extend from T.
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] argv) { List<Number> numlist = new ArrayList<Number>(); numlist.add(new Integer(123)); numlist.add(new Float(123)); } }