A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jing397 中级黑马   /  2015-10-11 13:30  /  722 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


        继承的语法如下,冒号后的标识符是需要继承
                    
            @interface            Circle : NSObject
      

1.不支持多继承
        要注意的是OC只支持单继承,如果要实现多继承的话,可以通过类别和协议的方式来实现,这两种方法将在后面进行介绍。
2.Super关键字
        OC提供某种方式来重写方法,并且仍然调用超类的实现方式。当需要超类实现自身的功能,同时在前面或后面执行某些额外的工作时,这种机制非常有用。为了调用继承方法的实现,需要使用super作为方法调用的目标。下面是代码示例:


                    
            @implementation            Circle
            -(void)setFillColor:            (ShapeColor) c
            {
                if            (c== kRedColor){
                    c            = kGreenColor;
                }
                           [super            setFillColor: c];
            }
            @end
        

  Super来自哪里呢?它既不是参数也不是实例变量,而是由OC编译器提供的某种神奇功能。向super发送消息时,实际上是在请求OC向该类的超类发送消息。如果超类中没在定义该消息,OC将按照通常的方式在继承链中继续查找对应的消息。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马