2017-03-10 3 views
0

J'ai une superclasse Appointment qui est ensuite étendue à différents types de rendez-vous. J'ai besoin de faire une ArrayList de rendez-vous de différents types que je ne pensais pas être un gros problème car ils partagent tous une superclasse commune - Appointment. Mais quand j'essaie d'ajouter l'une des sous-classes Daily au ArrayList<Appointment> book = new ArrayList<Appointment>() il ne parvient pas à le faire.Création d'une ArrayList d'objets de sous-classe

J'ai:

ArrayList<Appointment> book = new ArrayList<Appointment>() 

Puis, plus tard dans le programme (je suis la description qui passe, jour, mois et année de la méthode, il est dans):

book.add(new Daily(description, day, month, year)); 

Et je obtenir la suggestion de: La méthode add (AppointmentBook.Appointment) dans le type ArrayList n'est pas applicable pour les arguments (Daily)

Répondre

2

Modifier votre code de ArrayList<Appointment> à ArrayList<? extends Appointment>

+0

Comme 'ArrayList book = new ArrayList () '? – nill

+0

Oui, bien que vous ayez seulement besoin de déclarer le type une fois. 'ArrayList book = new ArrayList <>() ' – berko