I've got the next
public interface MyInterface{}
public class ClassA implements MyInterface(){}
public class ClassB extends ClassA{}
In theory, the valid references types for an object B are the following:
MyInterface myIn = new ClassB();
ClassA o1 = new ClassB();
ClassB o2 = new ClassB();
Object o3 = new ClassB();
If I try to do something like this ...
List<MyInterface> o1 = new ArrayList<ClassB>();
I get a compilance error. Any idea?