知识卡片

指定构造方法与便利构造方法的继承规则

专业/工作 · 634.a

内容

类的构造方法分两级:指定构造方法是完成本类全部初始化职责的基础方法,便利构造方法只是 调用同一个类里的其他构造方法(最终必然落到某个指定构造方法)来提供更方便的调用入口。 继承时有两条规则:子类若没有自定义或覆写任何指定构造方法,就自动继承父类全部指定构造 方法;子类若已经具备父类所有指定构造方法(不论通过继承还是覆写获得),就会连带自动继承 父类的便利构造方法。发散:这套规则的落脚点和[[构造安全检查防止未完成实例泄漏|四项安全 检查]]一致——便利构造方法能被继承的前提,是子类一定已经具备把实例完整初始化的能力, 避免子类继承了一个”调用了并不存在于自己身上的初始化路径”的便捷方法。

参考来源

《Swift 4从零到精通iOS开发》第9章《构造方法与析构方法》