在 Swift 中,函式是我們很常用到的工具,但是如果我們將函式宣告為 static,在使用繼承來覆寫 static 函式時,通常都不能成功。但在實務上,我們有時會遇到要覆寫 static 函式,那又該如何才能覆寫 (override) 一個 static 的函式呢?
首先,先看一下我們的範例。
class A {
static func print() {
Swift.print("Hello A")
}
}
class B: A {
override static func print() {
Swift.print("Hello B")
}
}
這時,編繹器很聰明的跳出「Cannot override static method」的警告了! 那我們該如何解呢?答案很簡單,將 static 改為 class 就好,以這一個例子如下:
class A {
class func print() {
Swift.print("Hello A")
}
}
class B: A {
override class func print() {
Swift.print("Hello B")
}
}
這時我們的函式就被覆寫啦,是不是超級簡單的呢?