1:通过添加新的导出类达到扩展设计的能力;
2:编译器调用函数的方式
2.1:前期绑定:在编译的时候就需要绑定具体函数名称的调用,方便在运行是直接把该绑定的函数名称要执行的代码的绝对地址;
2.2:后期绑定:在运行是才能够确定代码的地址,所以在消息发送到一个泛化对象时,必须采用的机制;
特点:编译器只需要确保被调用的方法是否存在,并对调用参数和返回值 执行类型检查 ,并不知道具体呗执行的确切代码;
在Java中后期绑定是不需要添加额外的关键来实现多态;
3:向上转型:(upcasting)
把导出类看成他的基类的过程被称为向上转型,
总结:
在多态中,运行期可以通过多态来找到具体对象发送消息, 关键有一个 向上转型 隐形细节处理; 比如 一个接口只需要知道接受到的类型就行 具体实现就看该类型基类的具体实现了;