继承



【认识继承】
    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对象中

posted @ 2015-06-19 16:17  天使雨儿  阅读(162)  评论(0编辑  收藏  举报