Heim  >  Artikel  >  Java  >  Wie ist die Ausführungsreihenfolge der Konstruktoren beim Erstellen eines abgeleiteten Klassenobjekts?

Wie ist die Ausführungsreihenfolge der Konstruktoren beim Erstellen eines abgeleiteten Klassenobjekts?

王林
王林Original
2020-07-08 15:55:219540Durchsuche

Beim Erstellen eines abgeleiteten Klassenobjekts lautet die Ausführungsreihenfolge des Konstruktors: Basisklassenkonstruktor, abgeleiteter Klassenobjektmitgliedskonstruktor und der Konstruktor der abgeleiteten Klasse selbst. Wenn ein Objekt erstellt wird, lautet die Reihenfolge beim Laden des Codes: statischer Code, nicht statischer Code und Konstruktormethoden.

Wie ist die Ausführungsreihenfolge der Konstruktoren beim Erstellen eines abgeleiteten Klassenobjekts?

Beim Erstellen eines abgeleiteten Klassenobjekts lautet die Ausführungsreihenfolge der Konstruktoren: Basisklassenkonstruktor, abgeleiteter Klassenobjekt-Mitgliedskonstruktor und der Konstruktor der abgeleiteten Klasse selbst.

(Empfohlenes Tutorial: Java-Einführungsprogramm )

Detaillierte Einführung:

Die Ladereihenfolge des Codes beim Erstellen des Objekts ist: statischer Code --> Nicht statischer Code -->

Wenn die übergeordnete Klasse geerbt wird, lautet die Ladereihenfolge: der statische Code der übergeordneten Klasse –> der statische Code der untergeordneten Klasse –> > Der Konstruktor der übergeordneten Klasse –>

Statischer Code umfasst (statische Methoden, statische Variablen, statische Codeblöcke usw.) und nicht statischer Code (Mitgliedsmethoden, Mitgliedsvariablen, Mitgliedscodeblöcke usw.). des oben geschriebenen Codes laden.

(Empfohlenes Video-Tutorial: Java-Video-Tutorial )

Beispiel:

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 派生类本身的构造函数");
	}
}

Ausgabeergebnis:

Wie ist die Ausführungsreihenfolge der Konstruktoren beim Erstellen eines abgeleiteten Klassenobjekts?

Das obige ist der detaillierte Inhalt vonWie ist die Ausführungsreihenfolge der Konstruktoren beim Erstellen eines abgeleiteten Klassenobjekts?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn