OOP的后绑定概念

zhushican | 建站教程 | 2014年8月15日

当你向某个对象发送了一个消息之后,不到运行时,系统不能确定到底该调用哪段代码。编译器只保证这个方法存在,并且检查参数和返回值的类型(不这么做的语言属于弱类型weakly typed),但是它并不知道具体执行的是哪段代码。要进行后绑定,Java用了一些特殊代码来代替绝对调用。代码用存储在对象中的信息来计算方法的地址。因此每个对象的运行方式会根据这段特殊代码的内容而改变。当你向那个对象发送一个消息时,对象实际上知道该如何处置。

在有些语言中,你必须明确申明,某个方法要用到后绑定的灵活性。在这些预言中,方法不是末仍地动态绑定的。而动态绑定是Java的缺省行为,因此无需添加什么额外的关键词就能获得多态性。要展示多态性,我们要单独写一段会忽略类型的具体信息,而只跟基类打交道的代码。这段代码会同与具体类型信息相分离,因此它写起来会比较简单,理解起来也比较容易。如果通过继承加入一个新的类,那么在这个新类上,你写的代码会同在已有的类上运行得一样好。因此,这个程序是可扩展的。

[阅读全文]
0次浏览 0条评论 OOP  绑定  概念  
回顶部