2016-02-05 15 views
0

我打得有点与协议的面向对象编程,冲进这可能是相当普遍的情况下,但我不知道如何可以解决的。下面我有2个协议,如果类想要实现协议,都需要一个名为param的var。但在协议中,var参数是2种不同的类型。那么我如何实现这两个协议而不必更改协议呢?这里的代码:斯威夫特协议的面向对象编程,解决命名冲突

protocol firstProtocol 
{ 
    var param:Int { get set } 
} 

protocol secondProtocol 
{ 
    var param:String { get set } 
} 

class protocolImplementer: firstProtocol, secondProtocol 
{ 
    var param:String = "foo" 
    var param:Int = 0 // Invalid redeclaration of 'param' 
} 

回答

0

你不能。 一个类不能有2个具有相同名称的变量。编译器如何决定从某处调用哪个变量? 尽管万一它们有不同的参数,但可以使用这些方法。

+0

名称空间。 –