首页 > 试题广场 >

运行下面代码,输出的结果是 class A { &nb

[单选题]
运行下面代码,输出的结果是
class A {
    public A() {
       
System.out.println("class A");
    }
    {
System.out.println("I'm A class"); }
    static {
System.out.println("class A static"); }
}
public class B extends A {
    public B() {
       
System.out.println("class B");
    }
    {
System.out.println("I'm B class"); }
    static {
System.out.println("class B static"); }
   
    public static
void main(String[] args) {
new B(); 
}

  • class A static class B static    I'm A
    class class A I'm B
    class class B
  • class A static  I'm A
    class class A class B
    static I'm B class class B
  • class A
    static class B
    static class A I'm A
    class class
    B I'm B
    class
  • class A static   class A  I'm A
    class class
    B static class
    B

    I'm B class

  ①父类静态变量和静态代码块(按照声明顺序);
  ②子类静态变量和静态代码块(按照声明顺序);
  ③父类成员变量和代码块(按照声明顺序);
  ④父类构造器;
  ⑤子类成员变量和代码块(按照声明顺序);
  ⑥子类构造器。

发表于 2019-08-31 09:21:46 回复(2)
1.加载B类,发现B有父类A,执行父类Astatic语句块,执行子类Bstatic语句块
2.new B()实例化B类,A类未实例化,实例化A,执行父类A语句块和构造函数,再执行子类
发表于 2019-07-23 11:56:04 回复(0)
父类静态,子类静态 父类成员,父类构造 子类成员,子类构造 如果只记得静态优先的话,用排除法选A,表示成员和构造傻傻分不清
发表于 2019-09-09 15:20:03 回复(0)
因为先是类加载 static伴随类存在 所以,1. a的静态代码块 2.b的静态代码块 接下来是在堆中创建对像 得先有父类再有子类 构造函数伴随对象创建……
发表于 2019-10-27 08:53:43 回复(0)
第一次用到a b类 加载父类 为父类静态变量分配内存 加载子类 为子类静态变量分配内存 执行父类静态变量的赋值运算 和静态初始化快 执行子类静态变量的赋值运算,和静态初始化块 创建对象 创建父类对象 为父类的实例变量分配内存 创建子类对象 为子类的实例变量分配内存 执行父类实例变量的赋值运算 执行父类的构造方法 执行子类实例变量的赋值运算 执行子类的构造方法 父类的静态变量 静态代码块 声明顺序 子类的静态变量 静态代码块 父类的成员变量 构造代码块 父类的构造方法 子类的成员变量 构造代码块 子类的构造方法
编辑于 2019-10-21 19:33:59 回复(0)

1.父类静态资源

2.子类静态资源

3.父类成员变量和代码块

4.父类构造方法

5.子类成员变量和代码块

6.子类构造方法

发表于 2019-09-20 16:11:13 回复(0)
换行是不是有问题,一开始就不懂,更晕了
发表于 2019-09-19 16:58:57 回复(0)