【发布时间】:2020-05-05 20:08:41
【问题描述】:
我正在尝试快速实现可链接的对象设计。这是我的结构:
class A{
func get() -> some A{
return self
}
}
class B:A{
func set(){
}
}
我可以创建一个即使我创建原始类的子类也能工作的方法吗?在我的示例中,如果我在 B 上调用 get,我将得到一个类型为 A 的对象,它没有名为 set 的方法。
let b = B()
b.get().set() // A has no member 'set'
因此,要使其正常工作,我必须手动覆盖 A 和 B 中的每个函数,这并不是最糟糕的,因为我可以调用 super 但仍然浪费时间和重复代码。
【问题讨论】: