Я пытаюсь быстро реализовать дизайн объекта Chainable. Это моя структура:
class A{
func get() -> some A{
return self
}
}
class B:A{
func set(){
}
}
Могу ли я создать метод, который будет работать, даже если я создам подкласс исходного класса? В моем примере, если я вызываю get
на B
, я получаю объект типа A
, у которого нет метода с именем set
.
let b = B()
b.get().set() // A has no member 'set'
Итак, чтобы это сработало, я пришлось бы вручную переопределить каждую функцию из A
в B
, что не самое худшее, так как я могу вызвать super, но все равно тратить время и дублировать код.