强制子类实现协议swift

强制子类实现协议swift,第1张

概述我如何强制子类实现父类中声明的协议? 我试过这个: 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"    }}

希望这可以帮助…!

总结

以上是内存溢出为你收集整理的强制子类实现协议swift全部内容,希望文章能够帮你解决强制子类实现协议swift所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1007181.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存