El constructor de Java es un papel muy importante. En primer lugar, el constructor en Java se puede sobrecargar, y debido a que también se puede heredar del constructor de la clase principal, en la subclase, lo primero es llamar al constructor de la clase principal. Puede compararlo con los siguientes dos ejemplos:
prueba de clase pública {public static void main (string args []) {b b = new B (100); }} clase A {public a () {System.out.println ("A sin ningún parámetro"); } public A (int i) {System.out.println ("A con un parámetro"); }} La clase B extiende A {public B () {System.out.println ("b sin ningún parámetro"); } public B (int i) {System.out.println ("b con un parámetro"); }}La salida final de este ejemplo es
A sin ningún parámetro
B con un parámetro
Puede ver que lo primero que llame es el constructor de la clase principal, y luego se llama al propio constructor. Sin embargo, debido a que el constructor con parámetros en la clase B aquí no tiene una clase súper principal, solo ejecutará el constructor sin parámetros de la clase principal. Si desea que ejecute el constructor de la clase principal con los parámetros, debe escribir el código así:
prueba de clase pública {public static void main (string args []) {b b = new B (100); }} clase A {public a () {System.out.println ("A sin ningún parámetro"); } public A (int i) {System.out.println ("A con un parámetro"); }} La clase B extiende A {public B () {System.out.println ("b sin ningún parámetro"); } public B (int i) {super (i); // Este es el constructor de parámetros System.out.println ("b con un parámetro"); }}Entonces la salida final es:
A con un parámetro
B con un parámetro
Por lo tanto, la clase derivada debe usar Super para llamar al constructor que contiene parámetros de la clase principal. Aquí hay otra pregunta:
La prueba de clase pública se extiende x {y y = new y (); Test () {System.out.print ("Z"); } public static void main (string args []) {new test (); }} clase X {y b = new y (); X () {System.out.print ("x"); }} class y {y () {system.out.print ("y"); }}¿Cuál es el resultado de salida?
Primero, analicemos esta pregunta:
Debido a que primero mire esta función principal, solo hay una oración de código para esta función principal: nueva test (); Debido a que descubrí que esta clase de prueba hereda de x, primero necesito construir x, así que ejecuto la clase X y b = new y (), y luego podemos ver la salida y, y luego ejecuto el constructor de x clase x y salida x; Luego construya y, luego ejecute el constructor propio de la prueba, la salida z, para que el resultado de salida sea YXYZ.
La explicación detallada anterior de algún conocimiento sobre constructores en Java es todo el contenido que comparto con ustedes. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.