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