我想知道如何使用协议来代替抽象类。下面是用抽象类编写的场景,我想用swift中的协议来实现:
public abstract class ModelA
{
protected int productQuantity;
protected String productUrl;
}
class ModelB extends ModelA
{
// I want to access ModelA members here
}
我想用swift中的协议实现上述功能。
任何帮助都将不胜感激。
最佳答案
议定书的执行应:
protocol ModelA {
// props
var productQuantity: Int { get set }
var productUrl:String { get set }
}
“我想在这里访问ModelA成员”,实际上您必须在
ModelA
中实现ModelB
属性。否则,将出现编译错误,说明:型号B:
class ModelB: ModelA {
// default values
var productQuantity: Int = 0
var productUrl: String = ""
// you can remove the default values after implementing 'init':
init(productQuantity: Int, productUrl: String) {
self.productQuantity = productQuantity
self.productUrl = productUrl
}
}
有关协议的更多信息,请检查Apple Documentation。
关于java - swift:如何使用协议(protocol)代替抽象类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40604146/