iOS协议实现多继承

本文介绍了iOS中如何通过协议实现多继承的效果。一个类可以遵守多个协议,从而实现多个父类的功能。文中通过实例展示了如何创建并实现Add、Sub和Mul三个协议,以及创建一个Calculator类来遵守这三个协议,实现加、减、乘的方法。这种方式使得在Objective-C的单继承体系下,也能达到类似多继承的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1、单继承中父类可以声明成员变量和方法,子类继承父类之后,子类会继承父类所拥有的成员变量和成员方法,子类可以不写父类的方法。

2、协议中不可以声明变量,只能声明方法,然后由遵守协议的类实现方法

3、因为一个类中可以遵守多个协议,所以一个类中可以继承多个类的方法,但是实现则要在本类中实现。(协议多继承的本质)

ps:总的来说单继承可以继承父类的属性方法并且不用重写父类方法可以使用,但协议多继承只能继承方法,并且要重写协议方法,可以理解成tableView这种类型的控件。


接下来是实例:(参考链接https://my.oschina.net/u/2410306/blog/522755)


#import <Foundation/Foundation.h>

@protocol Add <NSObject>

- (int)addA:(int)a b:(int)b;

@end


#import <Foundation/Foundation.h>

@protocol Sub <NSObject>

- (int)subA:(int)a b:(int)b;


@end

#import <Foundation/Foundation.h>

@protocol Mul <NSObject>

- (int)mulA:(int)a b:(int)b;

@end

==================================================以上是三个协议下面是新建一个继承与NSObject的计算类Calculator

#import <Foundation/Foundation.h>

#import "Add.h"

#import "Sub.h"

#import "Mul.h"


//遵守多个协议//类似于c++的多继承

@interface Calculator : NSObject <Add,Sub,Mul>

@end

#import "Calculator.h"

@implementation Calculator

- (int)addA:(int)a b:(int)b

{    return a+b;

}

- (int)subA:(int)a b:(int)b {

    return a-b;

}

- (int)mulA:(int)a b:(int)b {

    return a*b;

}

@end


==========================================

#import <Foundation/Foundation.h>

#import "Calculator.h"


/* 现在有多个类,一个是加法器类(会算加法) 第二个类是减法器类(减法功能)第三个乘法器类(乘法)  实现一个类分别可以进行+-c++可以用多继承实现但是OC没有多继承 但是OC可以通过协议来实现 */

int main(int argc,const char * argv[])

{    @autoreleasepool

    {

        Calculator *calc = [[Calculator alloc] init];

        NSLog(@"%d",[calc addA:1 b:1]);//2

        NSLog(@"%d",[calc subA:1 b:1]);//0

        NSLog(@"%d",[calc mulA:1 b:1]);//1

    }  

    return0;}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值