动态绑定的目的是为了多态,也就是编译时看声明类型,但是运行时看具体的类型 (普通成员方法)
静态绑定就是编译或者运行都看声明的类型中,子类不能重写(比如静态或者非静态成员变量,静态方法,私有方法,构造方法,被final修饰的方法)
多态:
父类 变量名=new 子类();
接口 变量名=new 实现类();
公式:
变量名.成员变量 编译时看左,运行时看左(静态绑定)
变量名.静态方法 编译时看左,运行时看左(静态绑定)
变量名。非静态方法 编译时看左,运行时看右(动态绑定)
推荐资料:https://blog.csdn.net/zhangjk1993/article/details/24066085