zoukankan      html  css  js  c++  java
  • 继承



    【认识继承】
        1、从生活角度
                    父类            子类
                    生物            动物
                    动物            人类
            就是集合的包含关系(子类包含父类)
        2、继承也叫派生,它们是同一个意思。描述的是同一问题,只是看待问题的            
        角度不同。父类的属性和方法子类可以直接拥有叫继承;子类在父类的基        
        础上衍生出新的特性叫派生。
        3、父类和子类的称呼
            父类        parentClass            superClass         基类        超类
            子类        childClass            subClass             派生类    子类
              
    【继承作用】
        总的来说,子类可以拥有父类所有的成员方法和非私有的成员变量
        1、创建大量相似的类(象棋:定义棋子作为基类,其它棋子继承它)
        2、统一接口(见猫狗排序练习)
        3、继承自一个官方或第三方的类,在上面稍加修改以适应当前工程

    【继承语法】
        @interface JYChild : JYParent
        @end
        子类 : 父类

        @protected
        //受保护的(默认属性),可以被继承,外部方法不能访问
        int _age;
        int _weight;
      @private
        //私有的,不能被继承
        int _money;
      @public
        //公有的,可以被继承,外部方法可以访问
        NSString *_name;

        说明:成员方法没有这些权限设置,默认全是公有的

    【重写】
        1、若父类的方法不适合子类,子类可以重新实现
        2、有些时候父类的方法不够完善,子类可以修改父类的方法

    【多态】
        1、父类的指针可以指向子类的对象,方法的执行看对象而不看指针
        2、从消息机制上,给不同对象发送同一消息,有不同的响应

    【工厂类】
        是OC中的一种设计模式,将多个类集成到一个超类之下,以超类对外公开,这样可以确保功能的完整性。但是工厂类是不能被继承的。
        工厂类:NSString/NSArray/NSDictionary/NSNumber

    【NSValue】
    功能:存储任意数据类型的变量


    练习:
    1、设计猫狗类,要求尽可能简单
    猫:
    属性:身高、体重
    行为:跑、跳、洗脸
    狗:
    属性:身高、体重
    行为:跑、跳、摇尾巴
    2、自定义一个结构体,要求将结构体变量存放到NSValue对象中

  • 相关阅读:
    ACM——Points on Cycle
    ACM——A Simple Problem with Integers(线段树的精华版)
    HDU2524——矩形A+B
    ACM——Hero(类似贪心算法)
    用N个三角形最多可以把平面分成几个区域——acm
    ACM——敌兵布阵(经典的线段树)
    ACM——I Hate It(线段树的进化版)
    ACM——今年暑假不AC
    ACM题目Who's in the Middle
    内部排序算法
  • 原文地址:https://www.cnblogs.com/rainwz/p/4589047.html
Copyright © 2011-2022 走看看