Swift便利构造函数convenience

便利构造函数: convenience
便利构造函数是对构造函数的一种功能扩充, 可以在初始化之前,根据指定的条件完成相关的初始化工作.
class AClass {
    let numA: Int
    init(num: Int) {
        numA = num
    }

    //便利构造
    //注意点:
    //便利构造函数必须调用当前类的构造函数完成初始化
    //便利构造函数不能被子类重写或者是从子类中以super的方式被调用
    convenience init(num: Int, str: String) {     
        if num > 100{
            self.init(num: 100)
        }else{
            self.init(num: num)
        }
    }
}

class BClass: AClass {
    let numB: Int
    override init(num: Int) {
        numB = num + 1
        super.init(num: num)
//        super.init(num: xxx, str: xxx)  // 子类中实现中不可调用便利构造
    }
}

let a = AClass(num: 333, str: "这是便利构造方法~")
a.numA
//print:100

//子类可以调用便利构造:
//另外要注意, 如果使用子类要能调用到父类便利构造方法, 必须重写父类除了便利构造函数的所有构造函数, 是由于在便利构造函数中会调用当前的构造函数, 如果子类没有重写, 也无法完成初始化.
let b = BClass(num: 88, str: "这也是便利构造方法")
b.numA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值