ひとしれずひっそり

主にソフトに関することをメモしていきます。過程をそのまま書いていたりするので間違いが含まれます。鵜呑みしない様に。

static property のoverride

Swiftでクラスに属するpropertyやmethodはstaticキーワードで定義するが、staticはオーバーライドできない。

こちらを参照するとstaticの代わりにclassキーワードを使ってcomputedにするとオーバーライドできる様だ。

software.small-desk.com

class A {
    class var name: String { return "A" }
    
    init() {
        debugPrint(Self.name)
    }
}

class B: A {
    override class var name: String { return "B" }
}

A() // -> "A"
B() // -> "B"

クラスプロパティで聞いたら答えてくれた。

ChatGPT優秀