Super Mot-clé dans Java
Le mot-clé super
dans java est une variable de référence utilisée pour se référer à un objet de classe parent direct. Chaque fois que vous créez une instance d'une sous-classe, l'instance de la classe parent est créée implicitement et référencée par la variable de référence super
.
Utilisation de Java Super Keyword
super
est utilisé pour se référer aux variables d'instance de la classe parent directe. Nous pouvons utiliser le mot-clé super
pour accéder au membre de données ou au champ de la classe parent. Si la classe des parents et des enfants ont le même champ, utilisez-le.
class Animal {
String color = "white";
}
class Dog extends Animal {
String color = "black";
void printColor() {
System.out.println(color); // 打印 Dog 类的颜色
System.out.println(super.color); // 打印 Animal 类的颜色
}
}
class TestSuper1 {
public static void main(String args[]) {
Dog d = new Dog();
d.printColor();
}
}
Sortir:
]noir blanc
Dans l'exemple ci-dessus, les classes d'animaux et de chiens ont une couleur d'attribut public. Si nous imprimons la propriété de couleur, il imprimera la couleur de la classe actuelle par défaut. Pour accéder à la propriété parent, nous devons utiliser le mot-clé super
.
super
peut être utilisé pour appeler les méthodes de classe parent. super
peut également être utilisé pour appeler les méthodes de classe parent. Si une classe enfant contient la même méthode que la classe parent, elle doit être utilisée. En d'autres termes, si la méthode est réécrite, elle est utilisée.
class Animal {
void eat() {
System.out.println("eating...");
}
}
class Dog extends Animal {
void eat() {
System.out.println("eating bread...");
}
void bark() {
System.out.println("barking...");
}
void work() {
super.eat();
bark();
}
}
class TestSuper2 {
public static void main(String args[]) {
Dog d = new Dog();
d.work();
}
}
Sortir:
]manger... aboiement...
Dans l'exemple ci-dessus, les classes d'animaux et de chiens ont la méthode EAT (). est donné à la méthode locale. Pour appeler la méthode de la classe parent, nous devons utiliser le mot-clé super
.
super
est utilisé pour appeler le constructeur de la classe parent. super
peut également être utilisé pour appeler le constructeur de la classe parent. Regardons un exemple simple:
class Animal {
Animal() {
System.out.println("animal is created");
}
}
class Dog extends Animal {
Dog() {
super();
System.out.println("dog is created");
}
}
class TestSuper3 {
public static void main(String args[]) {
Dog d = new Dog();
}
}
Sortir:
]Animal est créé le chien est créé
Remarque: S'il n'y a pas super ()
ou this ()
dans le constructeur, le compilateur ajoutera automatiquement super ()
à chaque constructeur de classe ]. (À ajouter)
Il est bien connu que si un constructeur n'existe pas, le compilateur fournira automatiquement le constructeur par défaut. Cependant, il ajoute également super ()
comme la première instruction. (À ajouter)
Un autre exemple du mot-clé super
, où super ()
est implicitement fourni par le compilateur. (À ajouter)
class Animal {
Animal() {
System.out.println("animal is created");
}
}
class Dog extends Animal {
Dog() {
System.out.println("dog is created");
}
}
class TestSuper4 {
public static void main(String args[]) {
Dog d = new Dog();
}
}
Sortir:
]Animal est créé le chien est créé
super
Exemple: application pratique (à compléter)
Voyons l'application pratique du mot-clé super
. Ici, la classe EMP hérite de la classe Personne, de sorte que toutes les propriétés de la personne seront héritées par défaut. Pour initialiser toutes les propriétés, nous utilisons le constructeur de classe parent à partir de la sous-classe. De cette façon, nous réutilisons le constructeur de la classe parent.
class Person {
int id;
String name;
Person(int id, String name) {
this.id = id;
this.name = name;
}
}
class Emp extends Person {
float salary;
Emp(int id, String name, float salary) {
super(id, name); // 重用父类构造函数
this.salary = salary;
}
void display() {
System.out.println(id " " name " " salary);
}
}
class TestSuper5 {
public static void main(String[] args) {
Emp e1 = new Emp(1, "ankit", 45000f);
e1.display();
}
}
Sortir:
]1 ankit 45000
référence: https://www.javatpoint.com/super-keyword
]Cette sortie révisée maintient la signification d'origine lors de l'utilisation de différentes structures de libellé et de phrases. ]]
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3