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);
    }
}
QCM-Java

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *