1,多态:
面向对象语言三大特点:封装,继承,多态。(顺序,选择,循环是面向过程)
//1,在oc中调用相同名称的方法,执行结果不同,这种表现形式我们叫做多态
其实就是:(相同名称方法的多种表现形态)
//2,(非主流的表现形式)zaiOc中,调用同一个名称但是参数不同的方法也可以叫做多态;
2,静态类型和id类型
//id 泛类型,指代[某个类的对象]的类型
/由于id是泛型,所以id中并不存在任何一斤可以调用的方法。那么我们使用的时候就不能让id类型的对象调用任何方法
//而是职能通过[方法选择器]去判断id类型的对象是否执行某个方法。
if (who) {//判断是否传入了值 id类型做参数的方法
[who performSelector:@selector(sellmeng) withObject:nil];//去选择执行某个方法,运行时检测对象中是否有(sellmeng)
}
3,多态的表现形式
//当定义同样的方法但是所带的参数个数或者类型不一样时,我们也可以叫他多态(非主流多态)
简单来说多态就是同一个类或者不同的类的方法名字恰好重复了而已。
4,使用多态的常见问题(选讲)
5,什么是Class
@class相当于高速编译器写在@class之后的这个字串当作一个类处理(与import区别是@class不导入任何东西)
6,什么是选择器
-(void)run:(id)runner{
if (runner) {
//select()方法是前面调用这个方法选择器的对象中的方法(不准)
// 通过调用方法选择器方法,在这个方法中将方法选择器指向runner的run方法;
[runner performSelector:@selector(run) withObject:nil];
/*
1,SEL 选择器类型(方法选择器类型)
SEL method=@selector(run);
表示,定义了一个方法选择器,这个方法选择器指向run方法
*/
}
}