Collection d'objet et héritage
Bonjour à tous,
Je suis en train de nettoyer le code d'une application développée initialement en Java 1.4 et je me retrouve avec un problème que certains on sans doute déjà rencontré.
Pourquoi n'est-il pas possible de déclarer : "List<A> liste = new ArrayList<B>()" avec B implémentant A ?
Merci d'avance pour toute information.
Exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
import java.util.ArrayList;
import java.util.List;
public class TestList {
public static void main(String[] args) {
A monA = new B() ;
// Ok
List<A> liste = new ArrayList<B>() ;
// Erreur à la compilation : Type mistmach : cannot convert ArrayList<B> to List<A>
}
static interface A {
// Nop
}
static class B implements A {
// Nop
}
} |