オーバーライド【Swift】
◾️オーバーライド
クラスを継承したが、あるメソッドは、スーパークラスのメソッドではなく、サブクラスのメソッドを使用したい場合がある。 そのようなときは、以下のコードのようにoverrideを先頭に書いてメソッドを定義することで、スーパークラスの関数を上書きできる。 これをオーバーライドという。 ※メソッド名、引数、戻り値などで相違する点がある場合にはコンパイルエラーが発生する。
class サブクラス名:スーパークラス名 {
プロパティ
メソッド
override func スーパークラスと同じメソッド名(){
// 新しい処理
}
}
◾️スーパークラスのメソッドの呼び出し
スーパークラスのメソッドをオーバーライドしたけど、オーバーライド前のスーパークラスのメソッドを呼び出したいときがある。 そんなときは、以下の様にsuperに対してオーバーライドしたメソッドを呼び出す。 superとはスーパークラスの事を意味している。 メソッドをオーバーライドしてもスーパークラスのメソッドが完全に消えてしまうわけでは無い。
class サブクラス名:スーパークラス名 {
プロパティ
メソッド
override func スーパークラスと同じメソッド名(){
// 新しい処理
super.スーパークラスと同じメソッド名()
}
}