Super en Java
En Java, nous avons un mot-clé prédéfini super
qui est quelque peu lié à la classe parente. Nous discuterons de la fonction super
en détail dans ce tutoriel.
En Java, le mot-clé super
agit comme une variable de référence pour les objets de la classe parente. Il peut être utilisé pour appeler les méthodes et les variables de la classe parent.
Par exemple
class Teacher { // Parent class
int grade = 90;
}
class Students extends Teacher { // subclass
Students() {
System.out.println("Grade " + super.grade);
}
}
public class Main {
public static void main(String[] args) {
Students s = new Students();
}
}
Production:
Grade 90
Dans l’exemple ci-dessus, nous avons accédé à la variable grade
de la classe parent Teacher
à partir du constructeur de sa sous-classe Students
en utilisant le mot-clé super
.
Nous avons aussi la fonction super()
, qui invoque le constructeur de classe du parent. Cette fonction n’est utilisée que pour appeler les constructeurs de la classe parent. Les constructeurs paramétriques et non paramétriques peuvent être appelés en utilisant la fonction super()
. Si, d’une manière ou d’une autre, le constructeur n’invoque pas explicitement un constructeur de superclasse lors de l’utilisation de la fonction super()
, alors le constructeur sans argument de la super-classe est appelé par le compilateur Java lui-même.
Voir le code ci-dessous.
class Teacher { // Parent class
Teacher() // constructor
{
System.out.println("Teacher class Constructor");
}
}
class Students extends Teacher { // subclass
Students() {
super();
System.out.println("Students class Constructor");
}
}
public class Main {
public static void main(String[] args) {
Students s = new Students();
}
}
Production:
Teacher class Constructor
Students class Constructor
Nous avons créé une classe parent Teacher
et un constructeur de classe parent dans le code ci-dessus, qui affiche un message. Ensuite, une sous-classe Students
est étendue à partir de Teacher
, qui a un constructeur Students
qui consiste en la fonction super()
pour invoquer le constructeur de la classe parent. Ensuite, nous avons la classe principale, qui appelle la sous-classe pour exécuter le programme. La fonction super()
invoquait le constructeur de la classe parente pour imprimer le message de la classe parente puis de la sous-classe.