Java | super()
Le mot-clé super en java est une variable de référence qui est utilisée pour référencer les objets de la classe mère. Le mot-clé super est principalement utilisé dans les contextes suivants:
- Pour référencer une variable d’instance de la classe mère.
- Pour appeler la méthode de la classe mère immédiate.
- Pour appeler le constructeur de la classe mère immédiat.
1. Utilisation de super avec une variable d’instance:
Nous pouvons utiliser le mot-clé « super » pour accéder au membre de données de la classe mère. Il est utilisé si la classe mère et la classe fille ont les mêmes variables.
class A{ String name = "A"; } class B extends A { String name = "B"; void showName(){ //affiche le nom de la classe B System.out.println(name); //affiche le nom de la classe A System.out.println(super.name); } } class Main { public static void main(String args[]){ B b = new B(); b.showName(); } }
Sortie:
B A
Dans l’exemple ci-dessus, A et B ont une propriété commune. Si nous affichons la propriété « name », elle affichera le nom de la classe actuelle par défaut. Pour accéder à la propriété de la classe mère, nous devons utiliser le mot-clé « super ».
2. Utilisation de super avec des méthodes:
Le mot-clé « super » peut également être utilisé pour appeler la méthode de la classe mère. Elle doit être utilisée si la sous-classe contient la même méthode que la classe mère. En d’autres termes, il est utilisé si la méthode est surchargée.
class A{ void show(){ System.out.println("Ceci est la classe A."); } } class B extends A { void show(){ System.out.println("Ceci est la classe B."); } void display(){ show(); super.show(); } } class Main { public static void main(String args[]){ B b = new B(); b.display(); } }
Sortie:
Ceci est la classe B. Ceci est la classe A.
Dans l’exemple ci-dessus la classe A et B, les deux classes ont la méthode show() si nous appelons la méthode show() de la classe B, elle appellera la méthode show() de la classe B par défaut. Pour appeler la méthode de la classe mère, nous devons utiliser le mot-clé « super ».
3. Utilisation de super avec des constructeurs:
Le mot-clé « super » peut également être utilisé pour appeler le constructeur de la classe mère.
class A{ A(){ System.out.println("A est créé."); } } class B extends A { B(){ super(); System.out.println("B est créé."); } } class Main { public static void main(String args[]){ B b = new B(); } }
Sortie:
A est créé. B est créé.
Dans l’exemple ci-dessus, nous avons appelé le constructeur de la classe mère en utilisant le mot clé « super » via le constructeur de la classe fille.