Maison >Java >javaDidacticiel >Ordre d'initialisation de l'héritage en Java
1. Séquence d'initialisation de l'héritage
1. Initialisez la classe parent, puis initialisez la sous-classe.
2. Effectuez d'abord l'initialisation des propriétés dans l'objet, puis effectuez l'initialisation dans la méthode constructeur.
2. Ci-dessous, nous utilisons un exemple simple pour illustrer ce problème :
Classe parent : Code animal :
package com.bluesky; public class Animal { public Animal(){ System.out.println("动物类的构造方法执行了!"); } }
Sous-classe : Code chien :
package com.bluesky; public class Dog extends Animal { public Dog(){ System.out.println("子类的构造函数执行了!"); } }
Classe de test : Code de test :
package com.bluesky; public class Test { public static void main(String[] args) { Dog dog = new Dog(); } }
Résultat de l'exécution :
Ce qui précède montre que la méthode de construction de la classe parent est exécutée en premier, puis la sous-classe est exécuté. Méthode de construction.
Ensuite, ajoutons un peu de code pour voir l'ordre d'exécution des attributs et des constructeurs
Classe parent : Code animal :
package com.bluesky; public class Animal { public int age=10; //如果构造方法先执行,属性后执行,则age的值应该为:10; //因为后面赋值会覆盖前面的赋值 public Animal(){ age=20; //同理 System.out.println("动物类的构造方法执行了!"); } }
Sous-classe : Code de classe Chien :
package com.bluesky; public class Dog extends Animal { public String name="Jack"; //如果构造方法先执行,属性后执行,则name的值应该为:Jack; //因为后面赋值会覆盖前面的赋值 public Dog(){ name="Rose"; System.out.println("子类的构造函数执行了!"); } }
Classe de test : Code de test :
package com.bluesky; public class Test { public static void main(String[] args) { Dog dog = new Dog(); System.out.println("dog.age="+dog.age); System.out.println("dog.name="+dog.name); } }
Résultat de l'exécution :
Résumé : À propos de l'héritage dans la séquence d'initialisation Java :
Initialisez d'abord les attributs de l'objet de classe parent, puis initialisez le constructeur de la classe parent.
Initialisez ensuite les attributs de l'objet sous-classe, et enfin initialisez le constructeur de la sous-classe.
Ce qui précède est le contenu de la séquence d'initialisation de l'héritage en Java. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !