Java基础
1. new一个类的执行顺序
- 通过代码验证,可以看出类的实例化分为两步,一步是类加载,一步是类实例化。
- 类加载阶段 : 先从父类开始加载,加载时要执行静态语句,静态的变量和静态的代码块。
- 实例化阶段 : 如果类还没有加载过,到类加载阶段去先加载类;如果已经加载完成了,那么从父类开始实例化。
- 如果子类重写了父类的方法,在实例化父类时如果调用了重写的方法,则会执行最最底层的子类中已经重写的方法。如果子类没有重写父类的方法,则子类调用此方法时会调用父类的方法,输出变量时会打印方法所在的类的变量值 且:
- ClassB extends ClassA; ClassA a = new ClassB(); a.i就是ClassA中的i值而不是ClassB中的。