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;
}