Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ OOPの原則 ポリモーフィズム | オブジェクト指向プログラミング
Java OOP

bookOOPの原則 ポリモーフィズム

メニューを表示するにはスワイプしてください

ポリモーフィズム

ポリモーフィズムはOOPのもう一つの原則。 すでにメソッドのオーバーロードオーバーライドでポリモーフィズムに触れている。一般的に、これがポリモーフィズムの本質。 しかし、ポリモーフィズムの定義は少し難しく感じることがある:

しかし実際は、それほど難しくない。ポリモーフィズムは簡単に言うと、2つの部分に分けられる:

  • メソッドのオーバーロード:このチャプターで学んだ内容。ただし、復習してみよう。

例を見てみよう:int型のパラメータを受け取りStringを返すメソッドと、同じ処理をlong型のパラメータで行うメソッドを書く必要がある。コードスニペットを見てみよう:

Main.java

Main.java

copy
1234567
public 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

Transport.java

Airplane.java

Airplane.java

copy
1234567
public class Transport { // some fields public String move() { return "This transport has started moving"; } }

ご覧のとおり、必要に応じて子クラスで親クラスのメソッドをオーバーライドしています。

このように、多態性は継承を非常によく補完します。多態性を利用することで、コードを便利かつ最適に拡張でき、柔軟性を持たせることができます。

1. なぜJavaで多態性が必要なのですか?

2. 多態性は継承をどのように補完しますか?

3. メソッドをオーバーロードする際に使用するキーワードは何ですか?

question mark

なぜJavaで多態性が必要なのですか?

正しい答えを選んでください

question mark

多態性は継承をどのように補完しますか?

正しい答えを選んでください

question mark

メソッドをオーバーロードする際に使用するキーワードは何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  4

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  4
some-alt