[Swift] overrideでスーパークラスのメソッドを上書きする

書式

class 子クラス名: 親クラス名 {
    override func メソッド名() {
       処理コード
    }
}

使用例

// 親クラスの定義
class ParentDemo {
    let num = 30
    // 親クラスのメソッド funA
    func funA() {
        print(" parent funA 111")
    }
    // 親クラスのメソッド funB
    func funB() {
        print("parent funB  222")
    }
}
// 子クラスの定義
class ChildDemo: ParentDemo {
    let num2 = 90
    func funC() {
     //子クラスのメソッド
      print(" child funC 333")
    }
    override func funA() {
        print("Override メソッド名で親クラスのメソッドを上書き 444")
    }
}
//子クラスのインスタンスの生成
let cft = ChildDemo()
print("結果1")
cft.funA()

print("結果2")
cft.funB()

print("結果3")
cft.funC()

print("クラスのメンバー変数")
print(cft.num)
print(cft.num2)

実行結果

結果1
Override メソッド名で親クラスのメソッドを上書き 444
結果2
parent funB  222
結果3
 child funC 333
クラスのメンバー変数
30
90

 

Swift

Posted by arkgame