Java subtype with extends
// it does work ListlistNum = new ArrayList<>(); List listInt = new ArrayList<>(); listNum = listInt; // it works List extends Number> listNum = new ArrayList<>(); List extends Integer> listInt = new ArrayList<>(); listNum = listInt;