分析类初始化

package edu.wtbu;
public class Demo01 {
static {
System.out.println("Main类被加载");
}
public static void main(String[] args) throws ClassNotFoundException {
//1.主动引用
//Son son = new Son(); 实例化子类对象时,如果子类继承了父类,则子类和父类都会被加载

//反射也会产生主动引用
//Class.forName("edu.wtbu.Son"); 反射子类时,则子类和父类都会被加载

//不会产生类的引用的方法
//System.out.println(Son.b);// Son类不会被加载 子类调用父类的方法时,子类不会被加载

//Son[] sons = new Son[5];//只有Main类被加载 创建子类对象时,子类和父类都不会被加载

//System.out.println(Son.M);//只有Main类被加载 调用子类的常量时,子类和父类都不会被加载
}
}

class Father{
static int b=2;
static {
System.out.println("父类被加载");
}


}

class Son extends Father{
static {
System.out.println("子类被加载");
m=30;
}
static int m=10;
static final int M=1;

}
posted @ 2023-03-26 12:33  惊鸿宴远赴人间  阅读(21)  评论(0)    收藏  举报