見出し画像

オーバーライドについて vol.44

前回は継承についてどのようなものなのか、使い方について説明した。

今回はその継承に対する操作的なことを行う。

継承関係については細かく区切って説明していこうと思う。

継承についてはこちらを見ていただきたい。

では本題に入ろう。

1.オーバーライドとは

継承で受け継いだ、親クラスのメソッドを子クラス側で変更を加えること。

要するに子クラス側で親クラスの処理を上書きして書き換えること。

例を出そう。

画像2

画像2

前回このようにCellPhoneクラスを親クラスとしてIphoneクラスが子クラスとなり継承を行った。

オーバーライドを記述するのは子クラスである、Iphoneクラスだ。

Iphoneクラスに親クラスである、CellPhoneクラスのmsgメソッドをオーバーライドしてみよう。
現在の処理は、メッセージを送るなので、オーバーライドで
メッセージを送受信するに変えてみよう。

画像3

このように親クラスのメソッドと同じメソッドを書くことでオーバーライドできる。

実行してみよう。

画像4

このようにオーバーライドが成功した。

2.オーバーライドによるメリット

オーバーライドしなくても親クラスの方を変えればいいと思ったかもしれない。

しかし、今回は継承している子クラスが一つだけだから、そう思うかもしれないが、複数のクラスが子クラスとして継承している場合はどうだろうか。

例を出そう。

CellPhoneクラスを親クラスとした、子クラスAndroidクラスを追加した。

Androidクラスはmsgメソッドでは「メッセージを送る」という処理を実行したい。

Androidクラスはこちら。

画像5

CellPhoneクラスを継承している。

Iphoneクラスでのmsgメソッドの処理を「メッセージを送受信する」に変えたいと思い、CellPhoneクラスのmsgメソッドを変更した。

画像6

このように親クラスの変更を加えた。

その結果。

画像7

Androidクラスにまで影響が出てしまった。

不用意に親クラスを変えてしまうと、継承しているほかのクラスにまで影響が及んでしまう。

そういったことを回避するためにオーバーライドがある。

オーバーライド自体簡単なのでぜひ試してみてほしい。

今回は以上。

では、また次回
元体育会系文系エンジニア石黒

いいなと思ったら応援しよう!

この記事が参加している募集