Der Konstruktor von Java ist eine sehr wichtige Rolle. Zunächst kann der Konstruktor in Java überladen werden, und da er auch vom Konstruktor der übergeordneten Klasse in der Unterklasse geerbt werden kann, ist das erste, was den Konstruktor der übergeordneten Klasse aufnimmt. Sie können es mit den folgenden zwei Beispielen vergleichen:
public class test {public static void main (String args []) {b b = new B (100); }} Klasse A {public a () {System.out.println ("a ohne Parameter"); } public a (int i) {System.out.println ("A mit einem Parameter"); }} Klasse B erweitert a {public b () {System.out.println ("B ohne Parameter"); } public b (int i) {System.out.println ("B mit einem Parameter"); }}Die endgültige Ausgabe dieses Beispiels ist
A ohne Parameter
B mit einem Parameter
Sie können sehen, dass das erste, was Sie aufrufen, der Konstruktor der übergeordneten Klasse ist, und dann wird der eigene Konstruktor aufgerufen. Da der Konstruktor mit Parametern in der Klasse B hier jedoch keine übergeordnete Klasse hat, wird der Konstruktor nur ohne Parameter der übergeordneten Klasse ausgeführt. Wenn Sie möchten, dass der Konstruktor der übergeordneten Klasse mit Parametern ausgeführt wird, müssen Sie den Code wie diesen schreiben:
public class test {public static void main (String args []) {b b = new B (100); }} Klasse A {public a () {System.out.println ("a ohne Parameter"); } public a (int i) {System.out.println ("A mit einem Parameter"); }} Klasse B erweitert a {public b () {System.out.println ("B ohne Parameter"); } public b (int i) {super (i); // Dies ist das Parameter Constructor System.out.println ("B mit einem Parameter"); }}Die endgültige Ausgabe ist also:
A mit einem Parameter
B mit einem Parameter
Daher muss die abgeleitete Klasse Super verwenden, um den Konstruktor aufzurufen, der Parameter der übergeordneten Klasse enthält. Hier ist eine weitere Frage:
Der öffentliche Klassentest erweitert x {y y = new y (); Test () {System.out.print ("z"); } public static void main (String args []) {new Test (); }} Klasse x {y b = new y (); X () {System.out.print ("x"); }} Klasse y {y () {System.out.print ("y"); }}Was ist das Ausgangsergebnis?
Lassen Sie uns zunächst diese Frage analysieren:
Da sich diese Hauptfunktion zum ersten Mal ansehen, gibt es nur einen Code für diese Hauptfunktion: New Test (); Da ich festgestellt habe, dass diese Testklasse von x ererbt, muss ich zuerst X konstruieren, also führe ich die X -Klasse y b = neu y () aus, und dann können wir die Ausgabe Y sehen und dann den Konstruktor der X -Klasse X und die Ausgabe x ausführen. Konstruieren Sie dann Y und führen Sie den eigenen Konstruktor des Tests aus, Ausgabe Z, sodass das Ausgabeergebnis Yxyz ist.
Die obige detaillierte Erklärung für einige Wissen über Konstruktoren in Java ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.