Swift 3等效于Java属性,其类型实现特定接口

时间:2017-01-16 06:13:11

标签: java swift interface protocols

请帮助将以下Java代码翻译成Swift 3:

interface A {
}

class BiA implements A {
}

interface C {
    List<? extends A> getAs();
}

class D implements C {
    List<BiA> getAs();
}

TIA

1 个答案:

答案 0 :(得分:1)

这样的东西?

protocol A {
    func hello()
}

class BiA: A {
    func hello() {
        print("Hello")
    }
}

class B2iA: A {
    func hello() {
        print("Hello2")
    }
}

protocol C {
    associatedtype Someclass
    func getAs() -> [Someclass]
}

class D: C {
    typealias Someclass = A
    func getAs() -> [Someclass] {
        return [BiA(), B2iA()]
    }
}

D().getAs().forEach({  $0.hello() })

<强>结果:

您好

Hello2