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

4一、明确isa在继承上的做用数据结构

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

4二、利用类别和协议实现相似多重继承的机制模块化

  • 一、类别,实现了类的相关方法的模块化,把不一样的类方法分配到不一样的分列文件中。
  • 二、类别能够重载原始类的方法,但不推荐这么作,这么作得后果是不再呢过访问原来的方法,若是确实要重载,正确的选择是建立子类。
  • 三、和普通接口有所区别的是,类别的实现文件中能够没必要实现全部声明的方法,只要不去调用它。
  • 四、协议就是一系列不属于任何累的方法列表,其中声明的方法能够被任何类实现。协议(Protocol)并非真正的类,它只能声明方法,不能添加数据。

4三、类别和类扩展是类继承的延续性扩展。
4四、继承基类的实现行为勿忘调用super。指针

  • 一、调用基类方式,以使用该类提供的服务。
  • 二、覆盖基类的方法,以便将本身的代码引入到定义的程序模型中。
  • 三、若是打算补充基类实现的行为,请调用super。
  • 四、若是打算替换基类实现的行为,就不要调用super。
相关文章
相关标签/搜索