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

書式

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class 子クラス名: 親クラス名 {
override func メソッド名() {
処理コード
}
}
class 子クラス名: 親クラス名 { override func メソッド名() { 処理コード } }
class 子クラス名: 親クラス名 {
    override func メソッド名() {
       処理コード
    }
}

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// 親クラスの定義
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)
// 親クラスの定義 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)
// 親クラスの定義
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)

実行結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
結果1
Override メソッド名で親クラスのメソッドを上書き 444
結果2
parent funB 222
結果3
child funC 333
クラスのメンバー変数
30
90
結果1 Override メソッド名で親クラスのメソッドを上書き 444 結果2 parent funB 222 結果3 child funC 333 クラスのメンバー変数 30 90
結果1
Override メソッド名で親クラスのメソッドを上書き 444
結果2
parent funB  222
結果3
 child funC 333
クラスのメンバー変数
30
90

 

Swift

Posted by arkgame