Le constructeur de Java est un rôle très important. Tout d'abord, le constructeur de Java peut être surchargé, et parce qu'il peut également être hérité du constructeur de la classe parent, dans la sous-classe, la première chose est d'appeler le constructeur de la classe parent. Vous pouvez le comparer avec les deux exemples suivants:
Test de classe publique {public static void main (String args []) {b b = new b (100); }} classe A {public a () {System.out.println ("a sans paramètre"); } public a (int i) {System.out.println ("A avec un paramètre"); }} La classe B étend un {public b () {System.out.println ("B sans paramètre"); } public b (int i) {System.out.println ("B avec un paramètre"); }}La sortie finale de cet exemple est
A sans aucun paramètre
B avec un paramètre
Vous pouvez voir que la première chose que vous appelez est le constructeur de la classe parent, puis le propre constructeur est appelé. Cependant, parce que le constructeur avec des paramètres de la classe B ici n'a pas de classe super parent, il ne fera que le constructeur sans paramètres de la classe parent. Si vous voulez qu'il exécute le constructeur de la classe parent avec des paramètres, vous devez écrire le code comme ceci:
Test de classe publique {public static void main (String args []) {b b = new b (100); }} classe A {public a () {System.out.println ("a sans paramètre"); } public a (int i) {System.out.println ("A avec un paramètre"); }} La classe B étend un {public b () {System.out.println ("B sans paramètre"); } public b (int i) {super (i); // Il s'agit du paramètre Constructor System.out.println ("B avec un paramètre"); }}La sortie finale est donc:
A avec un paramètre
B avec un paramètre
Par conséquent, la classe dérivée doit utiliser Super pour appeler le constructeur contenant des paramètres de la classe parent. Voici une autre question:
Le test de classe publique étend x {y y = new y (); Test () {System.out.print ("z"); } public static void main (String args []) {new test (); }} classe x {y b = new y (); X () {System.out.print ("x"); }} classe y {y () {System.out.print ("y"); }}Quel est le résultat de sortie?
Tout d'abord, analysons cette question:
Parce que d'abord, regardez cette fonction principale, il n'y a qu'un seul code pour cette fonction principale: nouveau test (); Parce que j'ai constaté que cette classe de test hérite de x, j'ai d'abord besoin de construire x, donc j'exécute la classe X y b = new y (), puis nous pouvons voir la sortie y, puis exécuter le constructeur de x classe X et de sortie x; Construisez ensuite Y, puis exécutez le propre constructeur du test, sortie Z, de sorte que le résultat de sortie est yxyz.
L'explication détaillée ci-dessus de certaines connaissances sur les constructeurs en Java est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.