对于动态绑定:寻找要执行的实例方法的时候,是从对象的实际类型信息开始查找的,找不到的时候,再查找父类类型信息。
对于静态绑定:实例变量、静态变量、private方法、静态方法都是静态绑定;
当静态绑定的方法在父类方法内部时,执行父类的方法。
public class Test extends Parent{
private void inner(){
System.out.println("I am child method~");
}
public static void staticInner(){
System.out.println("I am child static method");
}
public void instanceInner(){
System.out.println("I am child instance method");
}
public static void main(String[] args) {
Parent test = new Test();
test.outer();
test.staticInner();
/*
执行结果:
I am inner method!
I am static inner method
I am child instance method
I am outer method!
I am static inner method
*/
}
}
class Parent{
public void outer(){
inner();
staticInner();
instanceInner();
System.out.println("I am outer method!");
}
private void inner(){
System.out.println("I am inner method!");
}
public static void staticInner(){
System.out.println("I am static inner method");
}
public void instanceInner(){
System.out.println("I am instance method");
}
}