オーバーライド【Swift】

◾️オーバーライド

クラスを継承したが、あるメソッドは、スーパークラスのメソッドではなく、サブクラスのメソッドを使用したい場合がある。 そのようなときは、以下のコードのようにoverrideを先頭に書いてメソッドを定義することで、スーパークラスの関数を上書きできる。 これをオーバーライドという。 ※メソッド名、引数、戻り値などで相違する点がある場合にはコンパイルエラーが発生する。

class サブクラス名:スーパークラス名 {
    プロパティ
    メソッド
    override func スーパークラスと同じメソッド名(){
        // 新しい処理
    }
}

◾️スーパークラスのメソッドの呼び出し

スーパークラスのメソッドをオーバーライドしたけど、オーバーライド前のスーパークラスのメソッドを呼び出したいときがある。 そんなときは、以下の様にsuperに対してオーバーライドしたメソッドを呼び出す。 superとはスーパークラスの事を意味している。 メソッドをオーバーライドしてもスーパークラスのメソッドが完全に消えてしまうわけでは無い。

class サブクラス名:スーパークラス名 {
    プロパティ
    メソッド
    override func スーパークラスと同じメソッド名(){
        // 新しい処理
        super.スーパークラスと同じメソッド名()
    }
}