OOPの原則 ポリモーフィズム
メニューを表示するにはスワイプしてください
ポリモーフィズム
ポリモーフィズムはOOPのもう一つの原則。 すでにメソッドのオーバーロードやオーバーライドでポリモーフィズムに触れている。一般的に、これがポリモーフィズムの本質。 しかし、ポリモーフィズムの定義は少し難しく感じることがある:
しかし実際は、それほど難しくない。ポリモーフィズムは簡単に言うと、2つの部分に分けられる:
- メソッドのオーバーロード:このチャプターで学んだ内容。ただし、復習してみよう。
例を見てみよう:int型のパラメータを受け取りStringを返すメソッドと、同じ処理をlong型のパラメータで行うメソッドを書く必要がある。コードスニペットを見てみよう:
Main.java
1234567public String doStuff(int parameter) { //... } public String doStuff(long parameter) { //... }
上記のように、同じ名前で異なる動作を持つ2つのメソッドを作成しています。これがメソッドのオーバーロードです。
- メソッドのオーバーライド:
このトピックには以前にも触れています。
toStringメソッドを この章でオーバーライドした際に学びました。もう一度復習しましょう。
メソッドをオーバーライドする方法を示すコードスニペットを見てみましょう。Airplane というクラスがあり、これは Transport クラスを継承しています。そして Transport クラスには move というメソッドがあり、「This transport has started moving」を返します。
飛行機には「start flying」という動作が必要です。「moving」の代わりにこれを実現するため、子クラスで move メソッドをオーバーライドします。
Transport.java
Airplane.java
1234567public class Transport { // some fields public String move() { return "This transport has started moving"; } }
ご覧のとおり、必要に応じて子クラスで親クラスのメソッドをオーバーライドしています。
このように、多態性は継承を非常によく補完します。多態性を利用することで、コードを便利かつ最適に拡張でき、柔軟性を持たせることができます。
1. なぜJavaで多態性が必要なのですか?
2. 多態性は継承をどのように補完しますか?
3. メソッドをオーバーロードする際に使用するキーワードは何ですか?
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください