Red de conocimiento informático - Aprendizaje de programación - Consulta de inicialización de subclases de Java, ¡expertos, ingresen libremente!

Consulta de inicialización de subclases de Java, ¡expertos, ingresen libremente!

B b = new B();

∵B hereda de A

El método run() de ∴B anula el método run() de A

∵new B( ) primero llama implícitamente a super()

∴Ejecuta el método público A(){run();}

∵Este método run() es el método de la subclase B

Y ∵ En este momento, el método constructor de la subclase B aún no se ha ejecutado

∴El atributo i de la subclase B aún no tiene valor

∴Ahora i está predeterminado a 0

La confusión del propietario es que no descubrió de quién es el método run() que genera 0 y usted agregó System.out.println("class A"); B") tiene sentido en cada uno de los dos métodos run(). Puede notar que la clase A no está impresa.