zoukankan      html  css  js  c++  java
  • Objective-C学习笔记--继承

     1. 不要直接更改由继承得到的实例变量的值,一定要使用方法来更改它们

    2. 只能继承一个

     某些语言(例如C++)具有多重继承特性,在这种情况下,一个类可以直接从两个或多个类继承而来。但Objective-C不支持多继承,如果你尝试在Objective-C中使用多继承,编译器将不能正常识别它们,你可以通过Objective-C的其他特性获取多继承的有点,例如分类和协议

    3. 对于方法的定义,使用空正文或者返回一个虚值都是可以的

    比如:Shape类的draw方法

    -(void) draw

    {} //这样Shape的子类都能实现各自不同的方法

    4. 创建一个新类时,其对象首先从自身的超类中继承实例变量,然后(可选)添加他们自己的实例变量。

    5. super关键字

    Objective-C提供某些方式来重写方法,并且仍然调用超类的实现方式。当需要超类实现自身的功能,同时在前面或后面执行某些额外的工作时,这种机制非常有用,为了调用继承方法的实现,需要使用super作为方法调用的目标

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

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

  • 相关阅读:
    python入门
    二级域名分发
    检测网站日常运行
    为自己的网站添加天气显示
    基于linux下LNMP环境设置wordpress伪静态
    个人博客
    静态页跨页面传值
    微信小程序制作-随笔4
    中间带文字的分割线
    微信小程序制作-随笔3
  • 原文地址:https://www.cnblogs.com/cc-Cheng/p/3317155.html
Copyright © 2011-2022 走看看