一、
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