强制子类实现协议swift
发布时间:2020-12-14 04:42:00 所属栏目:百科 来源:网络整理
导读:我如何强制子类实现父类中声明的协议? 我试过这个: protocol MyProtocol { var myVar : String { get }}class ParentClass: MyProtocol { var myVar = "parent"}class ChildClass: ParentClass {} 但我的孩子班并没有强迫我覆盖myVar. 这个有可能 ? 非常
我如何强制子类实现父类中声明的协议?
我试过这个: protocol MyProtocol { var myVar : String { get } } class ParentClass: MyProtocol { var myVar = "parent" } class ChildClass: ParentClass { } 但我的孩子班并没有强迫我覆盖myVar. 这个有可能 ? 非常感谢你, 摩根 解决方法
据我所知,这在Swift中是不可能的.如果您尝试符合父类的协议,则会导致错误“无法使用存储的属性覆盖”.由于协议已经在parentClass中符合.
protocol MyProtocol { var myVar : String { get } } class ParentClass: MyProtocol { var myVar = "parent" } class ChildClass: ParentClass { var myVar = "hello" // Throws compilation error,"Cannot override with a stored property" since it's already conformed by the parentClass itself. } 添加: 一般来说,界面的多级实现是不可能的,在iOS中,协议应该只在单个级别实现.但由于您继承了parentClass,因此childClass具有访问parentClass成员的作用域. class ChildClass: ParentClass,MyProtocol { func printValue(){ println("newvalue : (myVar)") myVar = "hello" } } 希望这可以帮助…! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |