技術ブログ

プログラミング、IT関連の記事中心

オーバーライド【Swift】

◾️オーバーライド

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

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

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

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

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