Héritage et généricité | Java
Une classe générique peut agir comme une superclasse ou être une sous-classe. Dans une hiérarchie, tous les arguments type nécessaires à une superclasse générique doivent être transmis dans la hiérarchie par toutes les sous-classes.
Vous devez suivre certaines règles lors de la création d’une classe générique en tant que superclasse ou sous-classe.
1- Une classe générique peut hériter une classe non générique.
class NonGeneric
{
//Classe non générique
}
class Generic<T> extends NonGeneric
{
//Classe générique hérite une classe non générique
}
2- Une classe générique peut également hériter une autre classe générique. Lorsqu’une classe générique hérite une autre classe générique, la sous-classe doit avoir au moins le même type et le même nombre de paramètres type.
class A<T>
{
//Superclasse générique avec un seul type
}
class B<T> extends A<T>
{
//Sous-classe avec le même type
}
class C<T, E> extends A<T>
{
//Sous-classe avec deux types
}
class D<K, V> extends A<T>
{
//Erreur de compilation, sous-classe ayant différents types
}
3- Lorsqu’une classe générique hérite une autre classe générique, les types sont passés de la sous-classe à la super-classe comme dans le cas du chaînage de constructeur où le constructeur de la super-classe est appelé par le constructeur de la sous-classe en passant les arguments requis. Par exemple, dans le programme ci-dessous, « T » dans « A » sera remplacé par String.
class A<T>
{
T var;
public A(T var)
{
this.var = var;
}
}
class B<T> extends A<T>
{
public B(T var)
{
super(var);
}
}
public class Main
{
public static void main(String[] args)
{
B<String> b = new B<String>("WayToLearnX");
System.out.println(b.var);
}
}





