Swift 协议符合子类型

Swift protocol conformance with sub type

我希望能够使用实现协议要求的类型来实现协议(下面的 B)的 属性。例如我想编译下面的代码。目前,错误是 "Type D does not conform to protocol B"

protocol A {
   func doSomething()
}

protocol B {
    var property: A { get }
}

class C: A {
    func doSomething() {
        //Stuff
    }
}

class D: B {
    var property: C = C()
}

猜想这应该与关联类型一起完成

protocol B {
    associatedtype T : A
    var property: T { get }
}

class D : B{
    var property : C = C()

}