黑马程序员技术交流社区
标题:
OC中为什么没有java中的重载
[打印本页]
作者:
一步一个脚印
时间:
2015-3-25 00:33
标题:
OC中为什么没有java中的重载
查阅了相关资料,总算稍微了解这个问题了。其实也就一句话的事;OC中的参数类型是在运行时确定,所以如果有重载的方法,它执行的结果是不可预料的。OC中对对象发送消息,在运行时才会识别对象实际所属的类,然后才能到这个类中(类对象)的方法列表中查找方法,进而确定参数类型。还有要知道的一点是,oc中选择器相同的方法的参数类型是一样的。(当然也有例外)。对比下java,java的重载是一个类内的表现的多态,即给一个对象发送同名不同类型或者顺序的参数,会有不同的执行结果。java在编译时期就确定了参数类型。所以可用重载。另外 在继承和复写这块实现的多态,java和oc是一样的机制。over
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2