动态绑定工作机制如下:假设类C1,C2,...Cn和对象o,C1是C2的子类,C2是C3的子类,...,Cn-1是Cn的子类,o是类C1的实例,对象o调用一个方法p,java虚拟机一次在类C1,C2,...,Cn-1中查找方法p的实现,直到找到为止,一旦找到,停止查找并调用这个第一次找到的实现。所以叫动态绑定。
动态绑定也叫多态性。
多态性的好处:允许方法使用范围更广的对象参数。如一个方法的参数类型是弗雷(比如Object),可以向该方法传递这个参数子类的任何对象。这样,当在一个方法中使用一个对象时,动态地决定调用该对象方法的具体实现。
总而言之,就是,类的方法定义时用的父类参数,调用时用子类对象参数,然后动态绑定,好吧。
调用时用子类对象参数,也就说明,在java中子类对象可以隐式转换成父类对象。这是因为:子类对象总是父类的实例,但父类对象不一定是子类的实例。
~