Multiple choice technology programming languages

Given: classA {} class B extends A {} class C extends A {} class D extends B {} Which three statements are true? (Choose three.)

  1. The type List is assignable to List<A>.

  2. The type List<Object> is assignable to List<?>.

  3. The type List<D> is assignable to List<? extends B>.

  4. The type List<? extends A> is assignable to List<A>.

  5. The type List<Object> is assignable to any List reference.

  6. The type List<? extends B> is assignable to List<? extends A>.

Reveal answer Fill a bubble to check yourself
B,C,F Correct answer
Explanation

In Java generics, wildcard types are used for covariance. List is assignable to List&gt;, List is assignable to List extends B&gt; because D extends B, and List extends B&gt; is assignable to List extends A&gt; because B extends A.