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将按照通常的方式在继承链中继续查找对应的消息。

  • 相关阅读:
    iOS Sprite Kit最新特性Physics Field虚拟物理场Swift測试
    java中接口的定义与实现
    2014年百度之星程序设计大赛
    MyEclipse7.0破解下载
    C++中的explicitkeyword
    抽象工厂模式
    《Head First 设计模式》学习笔记——策略模型
    MFC原创:三层架构01(人事管理系统)DAL
    Design Pattern Singleton 单一模式
    C学习笔记之预处理指令
  • 原文地址:https://www.cnblogs.com/cc-Cheng/p/3317155.html
Copyright © 2011-2022 走看看