在Java中,假设我们有一个名为Card的类。该类有一个getAction()方法,并返回Action类的对象。
我知道在init期间可以覆盖此方法。像这样:
Card card = new Card() {
@Override
public Action getCard() {
return Action...
}
}
我的问题是,如果您可以使用Swift语言执行此操作,或者您是否只需要为方法的每个不同覆盖创建一个类?
答案 0 :(得分:0)
你不能在Swift中这样做,你必须要创建一个类,然后你必须从该类继承并覆盖这些方法。
您可以选择此回复:Swift: Override object method
答案 1 :(得分:0)
您在Java中引用的内容称为anonymous inner class - 您实际上是在声明一次性派生类内联。
很遗憾 Swift没有此功能。
但您可以考虑将闭包传递给实例。
假设您的Card类有var getCardFunction
:
Class Card {
var getCardFunction : () -> Int
}
现在你可以在初始化后传递你想要的功能:
var card = Card()
card.getCardFunction = {
return 6
}
注意 :您甚至可以拥有getCardFunction
功能的默认值:
Class Card {
var getCardFunction : () -> Int = {
return 3
}
}