JAVA中联编有两种,一种是动态联编,一种是静态联编。
//基类
public class Test {
//static variable
public static int i=4;
//无参构造
public Test() {
System.out.println("Test initialzed");
}
//动态联编
public void smile() {
System.out.println("Test smile and i = "+i);
}
//静态联编 -> static
public static void smile_static() {
System.out.println("Test smile_static and i = "+i);
}
}
//子类
public class Chi_Test extends Test {
public static int i = 5;
//构造函数
public Chi_Test() {
System.out.println("Chi_Test initialized ");
}
//动态联编
public void smile() {
System.out.println("Chi_Test smile and i = " + i);
}
//静态联编
public static void smile_static() {
System.out.println("Chi_Test smile_static and i = " + i);
}
}
public class Demo {
public static void main(String[] args) {
Test test = new Chi_Test(); //测试初始化构造函数顺序
test.smile(); //动态联编
test.smile_static(); //静态联编
}
}
由整个程序最终的运行结果可以看出:
动态联编与静态联编的本质区别在于对static关键字的运用与变换,这将使得整个程序拥有更强的灵活性。