0
点赞
收藏
分享

微信扫一扫

(转) iOS 继承、分类和类扩展

夏侯居坤叶叔尘 2021-09-30 阅读 98

一、继承

继承是指一个新类拥有被继承类(父类)的全部属性和方法。例如,只有继承NSObject,才有创建对象的能力。NSObject是大部分类的基类(根类,root class)。

当A类继承B类,A类就拥有B类中所有成员变量(属性)和方法。这也是继承的主要目的。

  • 使用场景:当我们可以说通B是一个A时,就可以使用B继承A类。
  • 继承的好处:代码重用;
  • 继承的缺点:父类的改变影响所有的子类,子类与父类耦合度很高。当子类中需要有自己独特的行为,不想使用父类的方法,可以把父类的方法覆盖掉,直接在子类中用一样的名字写个方法。不用在.h中写,因为父类已经声明过了,直接在.m中重写。如果重写了父类的方法,但还想使用父类的功能。则使用super。用来调用父类的方法。可以认为,super就是指父类。
  • 在继承体系中方法调用的顺序:1)在自己类中找;2)如果没有就去父类中找;3)如果父类中没有,就去父类的父类中找……直到找到基类。

二、分类

分类(Category)作用:扩展已有类的功能。
1)为原来的类增加方法;
2)在方法内部可以访问原有类的成员变量(但这些成员变量一定要定义在头文件中)

操作方法:
1)为原有的类创建一个分类;
2)在分类中增加新的方法的声明和实现
在左侧栏目文件夹处右键-New File-Objective-C File-File Type选Category-Class选你还要扩展的那个类-File填分类名称(不是文件名称)。

三、类扩展

在.m文件中为类增加私有的成员变量(属性)和方法。

在左侧栏目文件夹处右键-New File-Objective-C File-File Type选extension-Class选你还要扩展的那个类-File填分类名称(不是文件名称)。但通常直接在原类.m文件里写:@interface 原有类名()——这是一个常用的方法,特别是在带xib的控制器页面,一些控件我们通常用类扩展的方式,存在扩展里面,这样使得这些控件成员是私有的,不会被外界干扰到。


原文:https://blog.csdn.net/lyxleft/article/details/80590957

举报

相关推荐

0 条评论