「Swift5」Overrideでスーパークラスのメソッドを上書きするサンプル

環境
Swift version 5.2.3 (swift-5.2.3-RELEASE)
Target: x86_64-unknown-linux-gnu

書式

class 親クラス名 {
 func メソッド名A(){処理コード1}
}
class サブクラス名: 親クラス名{
  override func メソッド名A(){処理コード2}
}

使用例

import Foundation

//スーパークラスの定義
class Parent {
    func funA() {
        print("親クラスのメソッドfunA_tokyo")
    }
    
    func funB() {
        print("親クラスのメソッドfunB_oosaka")
    }
}
//子クラスの定義 クラス「Parent」を継承する
class Child: Parent {
    func funC() {
        print("子クラスのメソッドfunC_fukuoka")
    }
    
    override func funA() {
        print("Overrideで親クラスのメソッドfunAをオーバーライドする")
    }
}
// Childクラスのインスタンス生成
let sub = Child()
//funBを呼ぶ
sub.funB() 
//funCを呼ぶ
sub.funC() 
print("Overrideで親クラスのメソッドを上書き")
sub.funA()

実行結果
$ swift 28.swift
親クラスのメソッドfunB_oosaka
子クラスのメソッドfunC_fukuoka
Overrideで親クラスのメソッドを上書き
Overrideで親クラスのメソッドfunAをオーバーライドする

Swift

Posted by arkgame