下面的程序输出的结果是?为什么?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/06/21 18:09:36
![下面的程序输出的结果是?为什么?class A{\x05static{\x05\x05System.out.print(](/uploads/image/z/14824710-54-0.jpg?t=%E4%B8%8B%E9%9D%A2%E7%9A%84%E7%A8%8B%E5%BA%8F%E8%BE%93%E5%87%BA%E7%9A%84%E7%BB%93%E6%9E%9C%E6%98%AF%3F%E4%B8%BA%E4%BB%80%E4%B9%88%3Fclass+A%7B%5Cx05static%7B%5Cx05%5Cx05System.out.print%28%221%22%29%3B%5Cx05%7D%5Cx05public+A%28%29%7B%5Cx05%5Cx05System.out.print%28%222%22%29%3B%5Cx05%7D%7Dclass+B+extends+A%7B%5Cx05static%7B%5Cx05%5Cx05System.out.print%28%22a%22%29%3B%5Cx05%7D%5Cx05public+B%28%29%7B%5Cx05%5Cx05System.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.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.