オブジェクト指向③多態性(ポリモフィズム)

オブジェクト指向の三大要素 ①カプセル化(クラス)
②継承
③多態性(ポリモフィズム)←今回

今回のテーマはオブジェクト指向の三大要素
③多態性(ポリモフィズム)です。

多態性(ポリモフィズム)とは? 同一インターフェイス複数実装といわれています。
抽象クラスやインターフェイスで定義している抽象メソッドを
サブクラスで実装して、オーバーライド(上書き)します。

例 車インターフェイス

・アクセルを踏む(抽象メソッド)

サブクラスで、アクセルを踏む(抽象メソッド)を実装してオーバーライドします。

ガソリン車
・アクセルを踏む(ガソリンでエンジンを動かす)

電気車
・アクセルを踏む(電力でモーターを動かす)

実装手順 ・①車インターフェイスの作成
・②車インターフェイスを継承して、
 ガソリン車クラスの作成
・③車インターフェイスを継承して、
 電気車クラスの作成
・④メイン側から
 ガソリン車クラスの宣言とインスタンス
・⑤メイン側から
 電気車クラスの宣言とインスタンス

①車インターフェイスの作成

インターフェイス名は、ICarとします。
先頭にIを付けるとインターフェイスであることが分かりやすくなります
Iを付けなくても文法上は問題ありません。推奨レベルと思ってください。

車インターフェイスに抽象メソッドのアクセルを踏むメソッドを作成します。

②車インターフェイスを継承して、ガソリン車クラスを作成します。

ガソリン車が追加されましたが、空のクラスが作成されます。

このままだと、エラーとなってしまいます。波線のところをクリックすると実装されていなメソッドの追加が表示されます。そこをクリックします。

Eclipseの機能として、自動的にOverrideのメソッドを追加してくれます。便利で助かります。

以下のように、ガソリン車メソッドを実装します。

③車インターフェイスを継承して、電気車クラスを作成します。

電気車自動車を以下のように実装します。

④メイン側で、ガソリン車の宣言とインスタンスを実装します。

⑤メイン側で、電気車の宣言とインスタンスを実装します。

パッケージ・エクスプローラーは以下のようになります。

実行するとコンソールに結果を表示します。

☆まとめ☆ オブジェクト指向の三大要素の
③多態性(ポリモフィズム)を学びました。
インターフェイスの使い方についても学びました。
インターフェイスの継承は、implementsを使います。
class GasolineCar implements ICar
class ElectricVehicle implements ICar
継承先のサブクラスは、必ず継承元の抽象クラスを実装する必要があります。
Eclipseで新規にインターフェイスの追加、
インターフェイスの継承クラスの作成の仕方も学びました。

Follow me!