🔸2🔸Les mots-clé this
et super
¶
Dans le contexte de la programmation orientée objet en Java, voici les différences clés entre this
et super
:
Définition et Portée¶
this fait référence à l’instance courante de la classe actuelle, tandis que super fait référence à la classe parente immédiate[1].
Utilisations Principales¶
Accès aux attributs¶
this.attribut
accède aux attributs de la classe courantesuper.attribut
accède aux attributs de la classe parente[1]
Appel des constructeurs¶
this()
appelle un autre constructeur de la même classesuper()
appelle le constructeur de la classe parente[2]
Résolution des conflits de noms¶
public class Etudiant extends Personne {
private String nom; // Attribut local
public void setNom(String nom) {
this.nom = nom; // Attribut local
super.nom = nom; // Attribut de la classe parente; ne doit pas être privé pour avoir accès
}
}
Attention
Bien que l’exemple précédent soit valide (il compile si nom
dans parent n’est pas privé), il n’est pas recommandé
d’utiliser des attributs différents avec le même nom dans une sous-classe, pour éviter des problèmes de références
à ces attributs dûs à la confusion possible entre les attributs.
Règles importantes¶
super()
doit être la première instruction dans un constructeur[3]- On ne peut pas utiliser
this()
etsuper()
dans le même constructeur[5] - L’utilisation de
super
est essentielle dans l’héritage pour accéder aux membres de la classe parente qui sont masqués par la classe enfant[3]
Tableau comparatif¶
Caractéristique | this | super |
---|---|---|
Référence | Instance courante | Classe parente |
Portée | Classe actuelle | Classe parente immédiate |
Constructeur | Appelle autre constructeur de la même classe | Appelle constructeur de la classe parente |
Position | Première instruction si utilisé dans constructeur | Première instruction si utilisé dans constructeur |
Citations¶
- [1] https://www.studysmarter.fr/resumes/informatique/programmation-informatique/mot-cle-this-de-java/
- [2] https://www.justacademy.co/blog-detail/difference-between-this-and-super-in-java
- [3] https://www.scientecheasy.com/2019/11/difference-between-super-and-this-keyword-in-java.html/
- [4] https://www.javatpoint.com/this-vs-super-in-java
- [5] https://www.scaler.com/topics/java/this-and-super-keyword-in-java/
Note
Page rédigée en partie avec l’aide d’un assistant IA, principalement à l’aide de Perplexity AI, avec le LLM Claude 3.5 Sonnet. L’IA a été utilisée pour générer des explications, des exemples et/ou des suggestions de structure. Toutes les informations ont été vérifiées, éditées et complétées par l’auteur.