iOS多继承

想到面试的时候
被问到了一个东西 :多继承
好吧 我还真的是 没有怎么注意过这些 或者是时间长了 没有理解过

现在我仔细查查看

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

这样就是方法的继承了 使用协议实现

其他的实现方法有空补上

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