【发布时间】:2016-01-29 22:11:51
【问题描述】:
我有一个协议,其中定义了一个函数,函数的返回类型是SuperclassType。
在符合协议的类中,我尝试定义此函数,但返回类型为SubclassType。
编译器告诉我,这个类不符合协议,因为显然SubclassType != SuperclassType
protocol SomeProtocol {
func someFunction(someParameter:SomeType) -> SuperclassType?
}
class SomeClass : SomeProtocol {
func someFunction(someParameter:SomeType) -> SubclassType? {
...
}
}
class SubclassType : SuperclassType { }
不过,常识告诉我,SubclassType 应该是 SuperclassType 在这件事上的合适替代品。
我做错了什么?
谢谢。
【问题讨论】: