栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Swift中的“ required”关键字是什么意思?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Swift中的“ required”关键字是什么意思?

请参见“自动初始化继承”:

规则1 如果子类没有定义任何指定的初始化器,它将自动继承其所有超类指定的初始化器。

规则2
如果您的子类提供了其所有超类指定初始化器的实现(通过按规则1继承它们,或通过提供自定义实现作为其定义的一部分),则它会自动继承所有超类便利性初始化器。

在您的示例中,子类

B
没有自行定义任何初始化程序,因此它 继承了的
所有初始化程序
A
,包括所需的初始化程序。如果
B
仅定义便捷初始化程序(现在已针对 Swift 2进行了 更新),则同样如此:

class B: A {    convenience init(str : String) {        self.init(num: Int(str)!)    }    func haveFun() {        print("Woo hoo!")    }}

但是,如果子类定义了任何指定的(=非便捷性)初始化器,则它不再继承超类初始化器。特别是所需的初始化器不会被继承,因此不会编译:

class C: A {    init(str : String) {        super.init(num: Int(str)!)    }    func haveFun() {        print("Woo hoo!")    }}// error: 'required' initializer 'init(num:)' must be provided by subclass of 'A'

如果您

required
A
的init方法中删除from,那么类
C
也会进行编译。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/668819.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号