ユーチューブ動画

継承とオーバーライドについて解説します。

 

ソースコード

解説

継承とオーバーライドについて解説します。

 

共通したクラスを作るときには、継承を利用します。

継承するとサブクラスは、スーパークラスの内容を引き継ぎますが、場合によっては、一部だけを改良したいということもでてきます。

そのとき、今回ご紹介するオーバーライドを使うと、必要な差分だけをプログラミングすることができます

 

サンプルコードを確認しましょう。Productクラスを継承して、Printerクラスが定義されています。

Productクラスがスーパークラス、Printerクラスがサブクラスになります。

オーバーライドを成立させるためには、戻り値の型、メソッドの名前、引数リストを同じにします。

showDataメソッドに注目すると、同じになっています。つまり、showDataメソッドはオーバーライドしているといえます。

 

オーバーライドすると、メソッドの処理を上書きしてしまいます。

スーパークラスの処理も実行したいというときには、super.〜と記述することで、

スーパークラスのメソッドを呼び出すことができます。

 

PrinterクラスのインスタンスからshowDataメソッドを呼び出すと、

まずはサブクラスのshowDataメソッドが呼び出されて、super.showDataが実行されます。

メンバ変数のproductNameやpriceを出力すると、サブクラスのメソッドに戻ってきます。

サブクラスのメンバ変数であるprintSpeedを出力して、終了します。

 

サンプルコードにはありませんが、Productクラスを継承する別のクラスを定義しても、同じように差分をプログラミングすることができます。

ここではご覧のようなComputerクラスを作成しました。

メンバ変数に周波数が定義されています。

Printerクラスと同じようにshowDataメソッドをオーバーライドして、差分をプログラミングすることができます。

 

いかがでしたか?オーバーライドはメソッドの処理の上書きです。

戻り値の型・メソッドの名前・引数リストが同じとくれば、オーバーライドと覚えておきましょう。

以上、継承とオーバーライドについて解説しました。

 

 

このサンプルコードをJavaタッチタイプゲームとして遊ぶことができます。