Bonjour, je commence à apprendre java, mais voila que j'ai un problème, je vous explique:
1 2 3 4 5 6 7 8 9 10 11 12
| public class Garage
{
List<Voiture> list = new ArrayList<Voiture>();
public void add(List<? extends Voiture> voiture)
{
for(Voiture v : voiture)
list.add(v);
System.out.println("Contenu de votre garage:");
for(Voiture v : list)
System.out.println(v.toString());
}
} |
Avec ce code, quand je vais dans la classe main et que je fais:
1 2 3 4 5 6
| List<VoitureSP> v2 = new ArrayList<VoitureSP>(); //VoitureSP hérite de Voiture
v2.add(new VoitureSP());
v2.add(new VoitureSP(12.0f));
Garage garage = new Garage();
garage.add(v2); |
cela fonctionne, mais si dans la fonction add du garage je remplace:
public void add(List<? extends Voiture> voiture)
par
public void add(List<Voiture> voiture)
, je ne peux plus ajouter une classe qui hérite de voiture, alors que plus haut dans la classe garage, j'ai bien une liste de Voiture qui peut bien contenir des Voiture plus des classes qui y héritent, je ne comprend pas pourquoi.
Si je n'ai pas été assez clair, dites-le moi j'essayerai d'être plus précis, Merci
Partager