Object-c动态特性
动态绑定
实际的程序会使用各种各样的类的实例对象,所有的这些对象都可以用id类型来表示,因为id是通用的对象类型,可以用来存储任何类的对象。但是这样一来,程序中就会出现无法区分某个实例对象到底是哪个类的对象的情况。
Object-c中的消息是在运行时才去绑定的。运行时系统首先会确定接受者的类型(动态类型识别),然后根据消息名在类的方法列表里选择相应的方法执行,如果没有找到就到父类中继续寻找,假如一直找到NSObject也没有找到要调用的方法,就会报告不能识别消息的错误。
动态绑定(dynamic binding)指的就是在程序执行时才确定对象属性和需要响应的消息。
多态
在面向对象的程序设计理论中,多态(polymor phism)是指,同一操作作用于不同的类的实例时,将产生不同的执行结果。即不同类的对象收到相同的消息时,也能得到不同的结果