Maison > Java > Javacommencer > Lors de la création d'un objet de classe dérivée, quel est l'ordre dans lequel les constructeurs sont exécutés ?

Lors de la création d'un objet de classe dérivée, quel est l'ordre dans lequel les constructeurs sont exécutés ?

王林
Libérer: 2020-07-08 15:55:21
original
9707 Les gens l'ont consulté

Lors de la création d'un objet de classe dérivée, l'ordre d'exécution du constructeur est : le constructeur de la classe de base, le constructeur membre de l'objet de la classe dérivée et le constructeur de la classe dérivée elle-même. Lorsqu'un objet est créé, l'ordre de chargement du code est le suivant : code statique, code non statique et méthodes de constructeur.

Lors de la création d'un objet de classe dérivée, quel est l'ordre dans lequel les constructeurs sont exécutés ?

Lors de la création d'un objet de classe dérivée, l'ordre d'exécution des constructeurs est : le constructeur de la classe de base, le constructeur membre de l'objet de la classe dérivée et le constructeur de la classe dérivée lui-même.

(Tutoriel recommandé : Programme d'introduction à Java )

Introduction détaillée :

L'ordre de chargement du code lors de la création de l'objet est : code statique ---> Code non statique -->

Si la classe parent est héritée, l'ordre de chargement est : le code statique de la classe parent --> le code statique de la sous-classe --> > le Constructeur de la classe parent --> Code non statique de la sous-classe -->

Parmi eux, le code statique comprend (méthodes statiques, variables statiques, blocs de code statiques, etc.), le code non statique est (méthodes membres, variables membres, blocs de code membre, etc.). de code, écrit au-dessus du chargement.

(Tutoriel vidéo recommandé : Tutoriel vidéo Java )

Exemple :

public class ExtendsTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		C c = new D();
	}

}

class C {
	static {
		System.out.println("C 基类静态域 ");
	}
	{
		System.out.println("C 基类对象成员构造函数");
	}

	public C() {
		System.out.println("C 基类本身的构造函数");
	}
}

class D extends C {
	static {
		System.out.println("D 派生类静态域");
	}
	{
		System.out.println("D 派生类对象成员构造函数");
	}

	public D() {
		System.out.println("D 派生类本身的构造函数");
	}
}
Copier après la connexion

Résultat de sortie :

Lors de la création dun objet de classe dérivée, quel est lordre dans lequel les constructeurs sont exécutés ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal