-
Généricité et héritage
Bonsoir à tous.
Soit les classes suivantes :
Code:
public abstract class Mere {}
Code:
public class Fille extends Mere {}
Code:
public abstract class MereDAO<T extends Mere> {}
Code:
public class FilleDAO<Fille> extends MereDAO<Fille> {}
Pourquoi la notation
Code:
extends MereDAO<Fille>
génère-t-elle une erreur de type
Code:
Bound mismatch: The type Fille is not a valid substitute for the bounded parameter <T extends Mere> of the type MereDao<T>
puisque Fille étend Mere et que donc cela respecte ?
-
la notation c'est
Code:
public class FilleDAO extends MereDAO<Fille> {}
En écrivant
Code:
public class FilleDAO<Fille> extends MereDAO<Fille> {}
Tu défini un type générique "Fille". A partir de là "Fille" ne référence plus ta classe Fille, mais un type générique dont tout ce qu'on sait c'est qu'il étends Object.
-
Ah oui, cela m'avait échappé.
Merci beaucoup.