下面的程序输出的结果是?为什么?class A{\x05static{\x05\x05System.out.print("1");\x05}\x05public A(){\x05\x05System.out.print("2");\x05}}class B extends A{\x05static{\x05\x05System.out.print("a");\x05}\x05public B(){\x05\x05System.out.pri
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/29 05:05:47
下面的程序输出的结果是?为什么?class A{\x05static{\x05\x05System.out.print("1");\x05}\x05public A(){\x05\x05System.out.print("2");\x05}}class B extends A{\x05static{\x05\x05System.out.print("a");\x05}\x05public B(){\x05\x05System.out.pri
下面的程序输出的结果是?为什么?
class A{
\x05static{
\x05\x05System.out.print("1");
\x05}
\x05public A(){
\x05\x05System.out.print("2");
\x05}
}
class B extends A{
\x05static{
\x05\x05System.out.print("a");
\x05}
\x05public B(){
\x05\x05System.out.print("b");
\x05}
}
public class Hello{
\x05public static void main(String[] args){
\x05\x05A ab = new B();
\x05\x05ab = new B();
\x05}
}
下面的程序输出的结果是?为什么?class A{\x05static{\x05\x05System.out.print("1");\x05}\x05public A(){\x05\x05System.out.print("2");\x05}}class B extends A{\x05static{\x05\x05System.out.print("a");\x05}\x05public B(){\x05\x05System.out.pri
输出:1a2b2b
创建子类对象时会先跑父类构造方法创建父类对象,子类对象是在这个父类对象上附加而来的;
初始化java类时会先执行类中的static静态代码块,且static静态代码块仅执行一次.
A ab = new B();
初始化A父类输出1 - 初始化B子类输出a - 运行A父类构造方法输出2 - 运行B子类构造方法输出b.
ab = new B();
运行A父类构造方法输出2 - 运行B子类构造方法输出b.