多态,动态类型,动态绑定
2015-04-30 00:15
218 查看
一、多态
相同的名称、不同的类。使不同的类共享相同的方法名称的能力。
二、动态绑定和id类型
id——通用的对象类型,可以用来存储属于任何类的对象。如:id dataValue;(不用加*号)
三、编译时和运行时检查
存储在id变量中的对象类型在编译时无法确定,所以一些测试推迟到运行时进行。
四、id数据类型与静态类型
将一个变量定义为特定类的对象时,使用的是静态形态。
使用动态类型调用一个方法,注意规则:如果在多个类中实现名称相同的方法,那么每个方法都必须符合各个参数的类型和返回值类型。
五、有关类的问题
NSObject类所支持的一些基本方法。
要根据类名或另一个对象生成一个类对象,可以向它发送class消息。如:要从名为myClass的类中获得类对象(class-object),可编写:[MyClass class];或者获取对象的类的信息[obj
class], if([obj1 class] == [obj2 class])
变量是否是类的实例:[obj isMemberOfClass:[MyClass class]]
类的实例是否响应方法:[MyClass instancesRespondeToSelector:@selctor(Method)]
对象响应方法
SEL action;
id object;
action = @selector(method);
if([object respondeToSelector:action]==YES) {
[object performSelector:action];
}
相同的名称、不同的类。使不同的类共享相同的方法名称的能力。
二、动态绑定和id类型
id——通用的对象类型,可以用来存储属于任何类的对象。如:id dataValue;(不用加*号)
三、编译时和运行时检查
存储在id变量中的对象类型在编译时无法确定,所以一些测试推迟到运行时进行。
四、id数据类型与静态类型
将一个变量定义为特定类的对象时,使用的是静态形态。
使用动态类型调用一个方法,注意规则:如果在多个类中实现名称相同的方法,那么每个方法都必须符合各个参数的类型和返回值类型。
五、有关类的问题
NSObject类所支持的一些基本方法。
-(BOOL) isKindOf:class-object(判断对象是否是class-object或其子类的成员) (层次关系) -(BOOL) isMenberOfClass:class-object(判断对象是否是class-object的成员)(直接成员关系) -(BOOL) respondsToSelector:selector(判断对象是否能够响应selector所指定的方法) +(BOOL) instancesRespondToSelector:selector(判断指定的类实例是否能响应selector所指定的方法) +(BOOL) isSubclassOfClass:class-object(判断对象是否是指定类的子类) -(id) performSelector:selector(应用selector指定的方法) -(id) performSelector:selector withObject:object(应用selector指定的方法,传递参数object) -(id) performSelector:selector withObject:object1 withObject:object2(应用selector指定的方法,传递参数object1和object2)
要根据类名或另一个对象生成一个类对象,可以向它发送class消息。如:要从名为myClass的类中获得类对象(class-object),可编写:[MyClass class];或者获取对象的类的信息[obj
class], if([obj1 class] == [obj2 class])
变量是否是类的实例:[obj isMemberOfClass:[MyClass class]]
类的实例是否响应方法:[MyClass instancesRespondeToSelector:@selctor(Method)]
对象响应方法
SEL action;
id object;
action = @selector(method);
if([object respondeToSelector:action]==YES) {
[object performSelector:action];
}
相关文章推荐
- 初探Object-c 3 :多态,动态类型,动态绑定
- objective-c学习笔记第六章《objective-c 多态,动态类型,动态绑定与java中的区别》
- 多态、动态类型和动态绑定
- Objective-C多态,动态类型识别,动态绑定
- Objective-C程序设计第九章---多态、动态类型和动态绑定
- 四、多态、动态类型和动态绑定
- iOS开发笔记系列-基础3(多态、动态类型和动态绑定)
- Objective-c 特性之多态、动态类型和动态绑定
- 语言多态、动态类型和动态绑定
- 类的多态,动态类型,动态绑定
- 解析Objective-C中多态、动态类型和动态绑定
- 9-多态、动态类型和动态绑定
- Objective-C 学习笔记 9 多态,动态类型,动态绑定
- C++中的动态类型与动态绑定、虚函数、运行时多态的实现
- OC多态,动态类型绑定
- 五.OC基础--1.多态,2.类对象,3.点语法,4.@property&@synthesize,5.动态类型,内省(判断对象是否遵循特定的协议,以及是否可以响应特定的消息)
- IOS开发中的多态性、动态类型和动态绑定
- 多态,动态类型和动态绑定
- 静态类型和动态类型 静态绑定和动态绑定
- 详解Java多态对象的类型转换与动态绑定