黑马程序员技术交流社区

标题: OC基础之继承 [打印本页]

作者: jing397    时间: 2015-10-11 13:30
标题: OC基础之继承

        继承的语法如下,冒号后的标识符是需要继承
                    
            @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将按照通常的方式在继承链中继续查找对应的消息。







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2