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

本文详细介绍了面向对象编程中继承的基本概念,包括继承的特点、方法调用规则、自定义初始化方法的使用及便利构造器的概念与实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值