Sobes.tech
Junior

Comment une classe héritée utilise-t-elle la fonctionnalité de la classe parente?

sobes.tech IA

Réponse de l'IA

Par héritage : la classe dérivée reçoit les membres publics et protégés de la classe parente.

  • Accès direct : On peut accéder directement aux champs et méthodes publics et protégés du parent par leur nom à l’intérieur de la classe dérivée.
  • Mot-clé super : Utilisé pour appeler le constructeur du parent ou pour accéder aux méthodes/champs redéfinis du parent lorsque dans la classe dérivée il y a des membres avec le même nom.
  • Redéfinition (overriding) : Les méthodes du parent (qui ne sont pas final) peuvent être redéfinies dans la classe dérivée, en modifiant leur comportement.
// Exemple de classe parente
class Parent {
    protected int parentValue;

    public Parent(int value) {
        this.parentValue = value;
    }

    public void displayParentValue() {
        System.out.println("Valeur du parent : " + parentValue);
    }

    public final void cannotBeOverridden() {
        System.out.println("Cette méthode ne peut pas être redéfinie.");
    }
}

// Exemple de classe dérivée
class Child extends Parent {
    private int childValue;

    public Child(int parentValue, int childValue) {
        super(parentValue); // Appel au constructeur du parent
        this.childValue = childValue;
    }

    // Redéfinition de la méthode du parent
    @Override
    public void displayParentValue() {
        System.out.println("Valeur redéfinie du parent : " + parentValue); // Accès au champ protégé du parent
    }

    public void displayChildValue() {
        System.out.println("Valeur de l’enfant : " + childValue);
    }

    public void callParentMethod() {
        super.displayParentValue(); // Appel de la méthode du parent via super
    }
}