执行以下操作会产生什么影响:
protocol A {
func f()
}
extension A {
final f() {}
}
我希望了解将final
放在此处的扩展程序与未放置时相比。我知道final
做了什么,我希望了解实现/不实现f
及其子类的类的覆盖行为。
答案 0 :(得分:2)
您无法再将扩展功能标记为最终功能。
答案 1 :(得分:1)
对于Swift 2.0:Protocol Extensions
参考Inheritance的这个问题,final关键字不允许覆盖Extension中定义的(最终)方法,当它被分类时。
对于Swift 1.2: 这在扩展Extensions can add new functionality to a type, but they cannot override existing functionality
的上下文中可能很有用在决定应用程序架构的同时,在扩展的上下文中几乎没有什么可看的:
关于final关键字,这是我认为与类(继承)相比,它对Extensions方法没有影响。如果我在这里错了,请纠正我。 演示链接: