• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Mir_Augus
博客园    首页    新随笔    联系   管理    订阅  订阅

oc随笔二:组合、继承

        在oc中如果没有使用ARC的话,手动管理内存一定要注意处理好“野指针”,通常我们在释放指针的指向的地址时,都要将指针赋值为nil,这样能有效的防止野指针。常用的关键字:retain、assign 、strong、weak

        组合和继承都是提高代码可重用性的手段,在有些情况下,采用组合关系或者继承关系能完成同样的任务,组合和继承存在着对应关系:组合中的整体类和继承中的子类对应,组合中的局部类和继承中的父类对应。组合是has-a的关系,继承是is-a的关系。组合最主要的优势是不会破坏封装,是系统具有较好的松耦合性,更加易于维护。继承缺点:(1)当层级越来越多时,假如每个层级都有实例变量,那么最下层的子类继承的实例变量就会超级多,显得沉重;(2)当消息传递从子类往上时,层级越多,效率就越低下。组合缺点:需要创建比继承更多的对象,耦合度比继承弱。

        继承的一些注意事项:
        a.子类的实例变量不能与父类重名。
        b.子类初始化出的对象既可以调用自己的函数,也可以调用父类的函数,因为都继承过来了。
        c. 父类的实例变量类型在子类中不变,子类只能直接访问父类中的public和protected类型的实例变量,父类和子类直有            public可以直接用 -> 调用。
        d.子类的方法可以覆盖父类的方法(如果方法名、参数个数、参数类型、方法返回值类型都一样时),子类的方法一般更为具体,父类的方法更抽象。
        e.多级继承下的初始化规则,一是应该重新载入init;二是在自己类中写指定的初始化方法;三是自己类的init方法调用自己类的指定初始化方法;四是自己类的指定初始化方法调用父类的指定初始化方法。 否则会出现递归调用。
        f.消息查找规则,先查找本类,然后再往父类查找,需要注意的是有时虽然用B类创建了b对象,用[b display]调用display方法,且display调用了父类的[super display]方法,但对象还是本类对象,所以值还是本类初始化的那个值。

        组合注意:
         a.组合与继承实现的功能虽然差不多,但他们实现的形式不一样,区分就需要记住他们各自的形式。
         b.能使用组合的地方尽量使用组合。
例:
ASPoint
图片
ASRectangle

图片
main
图片

 

坚持分享,改变自我!
posted @ 2015-12-22 16:07  Mir_Augus  阅读(172)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3