[TwistedFate]继承 初始化方法 便利构造器

来源:互联网 发布:2017招聘软件排行 编辑:程序博客网 时间:2024/05/22 03:43

1.继承的特性:
- 继承是单向的
- 继承是可传递的
- 不能相互继承
- 继承:就是子类继承父类的方法和实例变量
- 继承的好处:减少代码量 提高工作效率
2.继承中方法的调用
- 使用self调用方法的时候:
优先调用本类中的方法 没有继续查找上一级,找到就调用,没有继续查找,都没有程序崩溃
- 使用super调用方法的时候:
直接跳过本类去查找上一级的父类,找到就调用 没有就继续查找 都没有程序崩溃,super没有特殊的意义 就是一个 编译指令
3.继承中自定义初始化方法的使用
赋值 实例变量的时候 需要先判断一下继承是否成功
也就是调用父类的初始化方法

// 方法声明- (instancetype)initWithName:(NSString *)name sex:(NSString *)sex age:(NSInteger)age number:(NSInteger)number;
// 方法实现- (instancetype)initWithName:(NSString *)name sex:(NSString *)sex age:(NSInteger)age number:(NSInteger)number{    // 继承中 的自定义初始化方法    // 赋值 实例变量的时候 需要先判断一下继承是否成功    // 也就是 调用父类的初始化方法    self = [super initWithName:name sex:sex age:age];    if (self) {        // 如果继承成功的话 就继续初始化 子类中特有的实例变量        _number = number;    }    // 继承失败 直接返回就行 空   return self;}

4.便利构造器:
便利构造器在初始化⽅法的基础上前进了⼀⼩步。封装了对象创建过程。便利构造器是“+”⽅法,返回 本类型 的实例,⽅法名以类名开头。可以有0到多个参数。

// 方法声明+ (instancetype)studentWithName:(NSString *)name sex:(NSString *)sex number:(NSInteger)number;
// 方法实现+ (instancetype)studentWithName:(NSString *)name sex:(NSString *)sex number:(NSInteger)number{ Stundet *stu = [[Studeng alloc] initWithName:name sex:sex number:number]; return stu;}
0 0
原创粉丝点击