Swift中的继承和扩展

inheritance
extensions如何在Swift中进行交互?更详细的是,为超类自动定义的超类定义了扩展吗?在这种情况下,是否存在差异问题(例如,如果扩展类型在扩展中显示为返回类型)? 最佳答案 继承和扩展可以按预期进行交互.给定两个类Foo和Bar,使得Bar<:Foo,Foo中可用的方法和Foo的扩展可供Bar使用.至于方差问题,子类可以重写方法并提供更具体的返回类型.例如,这里是Bar overriding baz with covariant type

class Foo { 
    func baz() -> Foo {
        return Foo()
    }
}

class Bar : Foo {
    override func baz() -> Bar {
        return Bar()
    }
}

扩展方法尚未被覆盖,但适用相同的原则.

点赞