想到面试的时候
被问到了一个东西 :多继承
好吧 我还真的是 没有怎么注意过这些 或者是时间长了 没有理解过
现在我仔细查查看
iOS的多继承
要求
C类要同时继承A类和B类
那开发本身是无法实现的
因此 我们使用
在C类中引入A,B 对象 来进行相关方法的执行
多继承可以允许子类从多个父类派生,而Objective-C并不支持多继承,但我们仍可间接实现。
通过协议、分类、消息转发来实现
通过协议实现
// 编程技能
@protocol Program <NSObject>
- (void)program;
@end
// 绘画技能
@protocol Draw <NSObject> - (void)draw;
@end
// 歌唱技能
@protocol Sing <NSObject> - (void)sing;
@end
// 原本一个什么也不会的程序员
// 学会了多个技能
@interface Programmer : NSObject <Draw, Sing>
// 继承的协议方法自动公有,无须声明接口
@end
@interface Programmer () <Program>
// 继承的协议方法自动私有,无须声明接口
@end
// 需要自行实现协议方法
@implementation Programmer
- (void)program {
NSLog(@"I'm writing bugs!");
} - (void)draw {
NSLog(@"I can draw");
} - (void)sing {
NSLog(@"Lalalallalalala");
}
@end
这样就是方法的继承了 使用协议实现
其他的实现方法有空补上