OC多态

多态往简单来说就是父类的指针指向子类的对象。

//父类

@interfacesuperColor : NSObject

-(void)print;

@end

#import "superColor.h"

@implementationsuperColor

-(void)print{

 NSLog(@"supercolor");

}

@end

//red 子类

@interfacecolorRed : superColor

@end

@implementationcolorRed

-(void)print

{

  NSLog(@"colorRed");

}

@end

//black 子类

@interfaceblackColor : superColor

@end

@implementationblackColor

-(void)print

{

 NSLog(@"blackColor");

}

@end

#import "superColor.h"

//需要操作的类

@interfacePerson : NSObject

-(void)print:(superColor*)color;

@end

@implementationPerson

-(void)print:(superColor*)color

{

 NSLog(@"%@",color);

[color print];

}

@end

//如果在使用过程中person类在调用black red类的时候,每次都要初始化,然后在person引入black或者red类进行使用,假若以后再引入blue类,又需要在person里面引入blue类,所以就相对麻烦了。这里就可以使用多台完成,让blac red blued类都j继承一个父类superColor,采用如下初始化方式,就可以只在personlei 里面写一个通用方法就可以调用了。

 //这里虽然传的是父类的指针,但是传的是子类的对象

 superColor*red = [[colorRedalloc]init];

 superColor*black = [[blackColoralloc]init];

 Person*person = [[Personalloc]init];

 //调用red类 -(void)print:(superColor *)color;

[person print:red];

 //调用black类 -(void)print:(superColor *)color;

[person print:black];

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 多态 一.多态与类的消息(方法)机制指同一个消息(方法)根据发送的对象不同,而采用不同的行为方式//因为其他类都是...
    草根小强阅读 411评论 0 0
  • 面向对象的三大特性: 封装继承与多态;封装是对类中的一些字段, 方法进行保护, 不被外界所访问到, 有一种权限控制...
    李小六_阅读 1,012评论 1 4
  • 20- 枚举,枚举原始值,枚举相关值,switch提取枚举关联值 Swift枚举: Swift中的枚举比OC中的枚...
    iOS_恒仔阅读 2,335评论 1 6
  • OC面向对象—多态 OC面向对象—多态一、基本概念多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多...
    清风沐沐阅读 760评论 0 1
  • 那时农村没有化肥,就靠有机物,有一种很独特的加工肥料的方法,就是在田头方塘里填满稀泥,再加些青草发酵而成。 方塘里...
    青苇暖阳阅读 303评论 0 3