一、
java的动态绑定都是针对 类的方法的 与 类的变量无关; 类的成员变量都是静态绑定,即根据其声明决定
二、
java当中的方法只有final,static,private和构造方法是静态绑定;其余的都是动态绑定
例如:
public class Father{ protected String name = "Father"; public Father(){ System.out.println("in Father()"); } public void fun(){ System.out.println("in fun for father"); } public static void staticFun(){ System.out.println("in static for father"); } }
public class Child extends Father{ protected String name = "Child"; public Child(){ System.out.println("in Child()"); } public void fun(){ System.out.println("in fun for child"); } public static void staticFun(){ System.out.println("in staticFun for child"); } }
public class MyTest { public static void main(String[] args){ Father f = new Child(); System.out.println("-------------------------------"); System.out.println(f.name); f.fun(); f.staticFun(); } }
in Father()
in Child()
-------------------------------
Father
in fun for child
in static for father
原文:http://blog.csdn.net/xiatian6032/article/details/44536659