我们为了实现多个接口,可以在类声明中的第一行的父类名后面放上多个借口,编译器会比较类的签名和接口的签名是否相同,如果相同,编译器就把接口中的函数绑定到类中的特定函数上。
对于这段话,我有几点不是很明白:
1:什么是接口签名或类签名,它们是怎样被管理的
2:编译器把接口中的函数绑定到类中的特定的函数上,这个特定的函数指的是什么样的函数,类中什么样的函数才是这里所指的特出的函数。
还请各位朋友赐教!!!!!!!!!!!!!!!!!!1

解决方案 »

  1.   

    类中的指定的接口,类必须为这些接口中所申明的方法进行实现!但具体实现不实现由开发者自己去控制(当然,很少有开发者会无聊的不去实现....),这样的类叫做接口的实现类....在通过实现类的构造返回给对应接口指针具体的内容以后,我们就可以通过这个接口变量来进行接口方法的调用,所以在调用的时候必须可以找到具体的接口方法的实现代码的入口地址才可以调用成功。我们知道在类的VMT中有一个接口表,指向VMT后VTABLE的入口地址,而VTABLE里面存放的是当前接口所申明的方法的实际代码入口地址,这些关联都是在绑定阶段进行的(可能是早绑定----在编译期,也可能是晚绑定----在运行期),但不论具体绑定阶段如何,编译器在将接口和对应实现类进行关联的时候必须根据我们在代码中所进行的申明来进行。而楼主的问题中所提到的签名个人认为只是一种形象的比喻,实际内存中没有这样的签名存在。在编译器构造VMT的过程中填充Interface Table的时候将根据代码中的类申明进行,至于如何理解这个过程,一个人有一个人理解的方式....至于特定的函数这个问题,上面的回复中已经有了,楼主自己看看吧....