早绑定和晚绑定的问题(在线等)
什么是早绑定,晚绑定,高手们能否举例子说一下!(在线等)
------解决方案--------------------早绑定 是指在对象实例化之前 定义对象的属性和方法 ,这样编译器或解释程序就能够提前转换机器代码.例如C#中的类.
晚绑定 是指在编译器或者解释程序在运行前,不知道对象的类型,在程序运行的时候才检查对象是否支持运行的方法和属性,例如JavaScript中的对象.
------解决方案--------------------只有在运行时才能动态的知道对象的类型,称之为晚绑定,一般就是我们所说的(运行时)多态
比如
public void Test(object o)
{
//对o进行处理
}
这里只有在运行的时候才能肯定传进来的究竟是个什么对象
------解决方案--------------------例子没有,以下是两者的定义
早绑定(Early binding)是指我们的代码通过直接调用对象的方法来直接与对象进
行交互。由于编
译器事先知道对象的数据类型,它可以直接编译出调用对象方法的代码。早绑定还允许
IDE通过使用智能
感知(IntelliSense)来帮助我们进行开发工作;它还能够使编译器确保我们所调用的
方法确实存在,以
及我们确实提供了恰当的参数值。
晚绑定(Late Binding)是指我们的代码在运行时动态地与对象进行交互。这提供
了很大的灵活性,
因为我们的代码不必知道它所交互的对象的具体类型,只要这个对象提供了我们需要调
用的方法就可以了
。由于IDE和编译器无法知道对象的具体类型,也就无法进行智能感知和编译期间语法检
查;但是,相较而言,我们却得到了空前的灵活性