
我试过这个:
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" }} 希望这可以帮助…!
总结以上是内存溢出为你收集整理的强制子类实现协议swift全部内容,希望文章能够帮你解决强制子类实现协议swift所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)