1、解析阶段是虚拟机将常量池内的符号引用(引用的目标不一定已经加载到内存)替换为直接引用(引用的目标一定已经在内存中)的过程
2、虚拟机类加载的解析阶段的动作主要针对类或接口、字段、类方法、接口方法四类符号引用进行解析为直接引用
在字段的解析中如果一个类Sub同时继承父类Parents和接口Interface2,存在字段A在Sub中没有,而在父类和接口中都存在的话,则编译器会拒绝编译,如下情况
public class Test{
interface Interface0{
int A = 0;
}
interface Interface1 extends Interface0{
int A = 1;
}
interface Interface2{
int A = 2;
}
static class Parents implements Interface1{
public static int A = 3;
}
static class Sub extends Parents implements Interface2{
public static int A = 4; //此行如果注释掉则会拒绝编译
}
public static void main(String args[]){
System.out.println(Sub.A);
}
}