[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