编写高质量代码-OC 第6章 继承与面向对象设计

41、明确isa在继承上的作用

  • 1、在Objective-C中,每个对象都隐藏着一个数据结构isa指针
  • 2、isa指针指向的是对象的类,这个类也是一个对象,有自己的权。
  • 3、在Objective—C中,每个对象还都保留一个超类的指针,通过该指针可调度自己已有的方法和调度基类。

42、利用类别和协议实现类似多重继承的机制

  • 1、类别,实现了类的相关方法的模块化,把不同的类方法分配到不同的分列文件中。
  • 2、类别可以重载原始类的方法,但不推荐这么做,这么做得后果是再也不呢过访问原来的方法,如果确实要重载,正确的选择是创建子类。
  • 3、和普通接口有所区别的是,类别的实现文件中可以不必实现所有声明的方法,只要不去调用它。
  • 4、协议就是一系列不属于任何累的方法列表,其中声明的方法可以被任何类实现。协议(Protocol)并不是真正的类,它只能声明方法,不能添加数据。

43、类别和类扩展是类继承的延续性扩展。
44、继承基类的实现行为勿忘调用super。

  • 1、调用基类方式,以使用该类提供的服务。
  • 2、覆盖基类的方法,以便将自己的代码引入到定义的程序模型中。
  • 3、如果打算补充基类实现的行为,请调用super。
  • 4、如果打算替换基类实现的行为,就不要调用super。

 

posted @ 2015-11-08 00:36  小沈曰  阅读(170)  评论(0编辑  收藏  举报