多态分为静态多态和动态多态,静态多态是执行之前决定用哪个方法,比如说你在实例化对象时,决定用哪种构造方法,重载是静态多态。动态多态程序运行中才决定用哪个方法,方法重写是动态多态。
绑定是方法调用与方法所在类关联,分为静态绑定和动态绑定。静态绑定是在程序执行前就绑定好了的,final static  private 修饰的都是静态绑定 。其他方法都是动态绑定。

解决方案 »

  1.   

    那3楼的答案是错误的?就是说其实重写和重载(为public)的都是动态绑定的,对吗?
      

  2.   

    java编程思想里面好像有这方面的介绍
      

  3.   

    静态绑定发生在编译时期,动态绑定发生在运行时
    使用private或static或final修饰的变量或者方法,使用静态绑定。而虚方法(可以被子类重写的方法)则会根据运行时的对象进行动态绑定。
    静态绑定使用类信息来完成,而动态绑定则需要使用对象信息来完成。
    重载(Overload)的方法使用静态绑定完成,而重写(Override)的方法则使用动态绑定完成。
    具体,你可以参考这篇文章http://droidyue.com/blog/2014/12/28/static-biding-and-dynamic-binding-in-java/