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-JavaQCM Java – Types génériquesQCM sur Java avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses…Lire plus

Laisser un commentaire

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