关于 第18个 tip "Designated, Convenience" 和 Required 的疑惑
zyg-github opened this issue · comments
原文:
“我们可以通过添加 required 关键字进行限制,强制子类对这个方法重写实现。这样做的最大的好处是可以保证依赖于某个 designated 初始化方法的 convenience 一直可以被使用。”
通过 required 不能保证 依赖于某个 designated 初始化方法的 convenience 一直可以被使用 除非只有一个 designated 初始化方法
要保证 convenience 一直可以被使用 需要保证 designated 的所有初始化方法 被实现(默认继承或者 手动实现都可以)
不知道对不对? 大神指点一下
我在这里的意思是把所有 designated 添加 required
,可能书里说法有点不好,我看看怎么改一改。
对于 convenience
,其实只需要理解它必须 call 到同一 class 的 convenience 或者 designated,而在父类中加入 required
就是为了给编译器提供约定,来保证子类继承的 convenience
最后一定可以 call 到子类中某一个 designated。
恩恩 理解
谢谢 喵神的解答