多态的实现原理:父类的引用指向子类对象。同一个操作作用于不同的对象的时候有不同的具体实现。

 

===什么是前期绑定和后期绑定呢?什么叫做绑定呢?

绑定的意思是:将方法调用和方法具体执行的主体联系在一起叫做绑定。

 

前期绑定:程序执行之前进行绑定,编译的时候就将方法具体执行的地址存好了直接调用就行了。

 

后期绑定:运行时候进行绑定,根据对象的具体类型进行绑定。后期绑定的实现需要方法表的支持。方法表记录了当前类和父类的所有方法字节码的内存地址。

 

动态绑定的具体调用过程是:

1.找到被调用方法的类的全限定名

2.在方法表中找方法的字节码地址,找到就把该方法索引项记录到常量池中,这个叫常量池解析,没找到就编译失败。

3.对于具体对象而言,也是查找这个对象的方法表和方法地址,然后在内存中找字节码的地址来执行。