美文网首页
多重继承

多重继承

作者: 0fbf551ff6fb | 来源:发表于2019-07-09 11:00 被阅读0次

    多重继承无非就是 A类 同时继承与B类和C类   OC不支持直接继承  可以通过消息转发机制和代理实现

    例如:有一个teacher类  和 一个Doctor类  现在需要tercher可以去做手术  这时老师只有继承了doctor才可以实现。

    1.使用消息转发机制实现

    在teacher类中直接调用手术的方法,teacher可能无法完成,这时会调用- (id)forwardingTargetForSelector:(SEL)aSelector方法,在此方法中让Doctor去做手术,间接完成了多重继承

    - (id)forwardingTargetForSelector:(SEL)aSelector

    {

        Doctor *doctor = [[Doctor alloc]init];

        if([doctorrespondsToSelector:aSelector]) {

            return doctor;

        }

        return nil;

    }

    2.使用代理实现

    设置医生为老师的代理,这样也可以完成做手术的任务

    相关文章

      网友评论

          本文标题:多重继承

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