I just started studying Wildcards and Subtyping on Java and try to test what I learn.

Suppose:

```
Class A { public int y=1; }
Class B extends A { public int x=2; }

```

In main:

```
List<B> lb = new ArrayList<>();
lb.add(new B());
System.out.println(lb.get(0).y); //Displays member y of Class A
List<? extends A> la = lb;
System.out.println(la.get(0).y); //Can access member y of Class A

List<A> la1 = new ArrayList<>();
la1.add(new A());
System.out.println(la1.get(0).y); //Displays member y of Class A
List<? super B> lb1 = la1;
System.out.println(lb1.get(0).y); //Cannot access member y of Class A? Why?

```

I don't understand why I cannot access the member y using Lower Bounded Wildcards while it is possible using Upper Bounds Wildcards. Am I missing something?