OC多态

作者: bugLife丶 | 来源:发表于2019-07-25 15:27 被阅读0次

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

//父类

@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];

相关文章

  • OC面向对象—多态

    OC面向对象—多态 OC面向对象—多态 一、基本概念 多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没...

  • OC多态 - OC

    什么是多态:不同的对象以自己的方式响应相同名称方法的能力称为多态(父类指针指向子类对象) 多态的条件:有继承关系、...

  • OC多态

    面向对象的三大特性: 封装继承与多态;封装是对类中的一些字段, 方法进行保护, 不被外界所访问到, 有一种权限控制...

  • OC多态

    什么是多态:不同的对象以自己的方式响应相同名称方法的能力称为多态(父类指针指向子类对象)多态的条件:有继承关系、有...

  • OC:多态☀️

    版权声明:本文为博主原创文章,未经博主允许不得转载。 1、多态 父类指针指向子类对象 属性:封装了setter ...

  • OC -- 多态

    多态:同一种类型 具有多种的表现形态 多态的条件:必须存在继承关系子类重写父类的方法❗️父类声明的变量指向子类对象...

  • OC多态

    多态往简单来说就是父类的指针指向子类的对象。 //父类 @interfacesuperColor :NSObjec...

  • 多态

    OC面向对象—多态 一、基本概念 多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态。 在使用多态...

  • OC的简单总结

    一.OC的三大特性 封装、继承、多态 1> 什么是多态 多态:不同对象以自己的方式响应相同的消息的能力叫做多态。 ...

  • Swift 多态实现探究

    多态 父类指针指向子类对象 Swift 中多态的实现类似于 c++ 中的虚表 OC 多态实现利用的是 Runtim...

网友评论

      本文标题:OC多态

      本文链接:https://www.haomeiwen.com/subject/jcphrctx.html