So I was looking over some Java code and stumbled upon:
List extends SomeObject> l;
basically this list accepts all objects that ar
X cannot be added to List even if X can be converted to Y.
X
List
Y
So,in your second case if List l; was allowed to add subclass of X,that would break the basic principal of type safety
List l;