教育・子育て

java chapter 18 ポリモーフィズム ⑤

マんタ's icon'
  • マんタ
  • 2025/08/26 04:19

 

ハイ、やっとたどり着いたねwww

 

 

あと3~4記事ぐらいで終わりそうだけどねwww

 

これまで、サブクラスをスーパークラスの型の変換に代入できることやオーバーロードによってメソッドの機能を変更できることをやりました。

ここではそれらを組み合わせて実現するポリモーフィズムについてやっていきます。

多様性、多態性などともいわれ カプセル化 継承 に続くオブジェクト指向三大要素の一つです。

 

1.スーパークラスへの代入とオーバーライド

 

まずは、オーバーライドメソッドの特質について理解しておきましょう。

それは、

  オブジェクトを異なる型の変数に代入しても

      起動するオーバライドメソッドは変わらない

                              ということです。 

 

Content image

 

上の図は Member型のオブジェクトをObject型変数objに代入した時の様子です。

ちょっとわかりにくいので実際にやってみますwww

 

package sample18_05;
public class Exec {
public static void main(String[] args) {
 Object obj = new Member(118, "田中宏");  
 System.out.println(obj);     // obj.toString()
}
}

コレが実際のプログラムというかコードですが…

Member[id=118, name=田中宏]

起動すると上のように文字がコンソールに出てきますwww

 

オブジェクトはMember型なのでMemberクラスでオーバーライドした

toStringメソッドが起動したわけです。

で、

まとめると 変数型は同じでも中に入れるオブジェクトの型を変えることでメソッドの動作が変わることを

      ポリモーフィズム 

                    という。

逆に代入するオブジェクトの型を変えることで、

                  様々な機能に変身させることが可能と! 

 

 

★ポリモーフィズム

同じ型の変数でも、どんなオブジェクトが入ってるかで動作が変わってしまう

同じ型の変数でも、違う型のオブジェクトを入れることで様々な機能に変身できること   

 

ここからは、あいさつ文のプログラムを

 

 

package sample18_06;

public class AmericanGreeting extends Greeting {
@Override
public String language(){
 return "American";
}
@Override
public String message(){
 return "Hello!";
}  
}

 

package sample18_06;

public class JapaneseGreeting  extends Greeting {
@Override
public String language(){
 return "Japanese";
}
@Override
public String message(){
 return "こんにちは!";
}
}

 

package sample18_06;
public class Talker {
public void run(Greeting greeting){
 System.out.println(greeting.language());
 System.out.println(greeting.message());
}
}

で、実際に実行していくプログラムを

 

package sample18_06;
public class Exec {
public static void main(String[] args) {
 Talker talker = new Talker();
 talker.run(new JapaneseGreeting());
}
}

 

package sample18_06;
public class Exec {
public static void main(String[] args) {
 Talker talker = new Talker();
 talker.run(new JapaneseGreeting());
}
}
Content image

コンナ感じにwww

 

日常的なプログラミングでもポリモーフィズムを意識しておくことが大切です。

次の章で学ぶインタフェースが、ポリモーフィズムのもう一つの実現方法を教えてくれます。

ここまでご覧いただきありがとうございました。

 

BY マんタ

参考書は__________________________________

新わかりやすい Java

川場 隆  Kawaba Takashi

秀和システム

______________________________________

Supporter profile iconSupporter profile icon
Article tip 2人がサポートしています
獲得ALIS: Article like 64.22 ALIS Article tip 19.60 ALIS
マんタ's icon'
  • マんタ
  • @25kit6
12月!今年も最後の一カ月!寒さもキツくなってきたから体調管理はしっかりしていかないとね WWW

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
ビジネス

海外企業と契約するフリーランス広報になった経緯をセルフインタビューで明かす!

Like token Tip token
16.10 ALIS
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
121.79 ALIS
Eye catch
クリプト

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

Like token Tip token
38.31 ALIS
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS
Eye catch
他カテゴリ

ALISのシステム概観

Like token Tip token
5.00 ALIS
Eye catch
トラベル

無料案内所という職業

Like token Tip token
84.20 ALIS
Eye catch
他カテゴリ

防犯意識 マーキング 下書き供養④

Like token Tip token
24.07 ALIS
Eye catch
教育・子育て

【科学】アリストテレスにデカルトにニュートンに…みな光に取り憑かれた~光学の発展~

Like token Tip token
23.75 ALIS
Eye catch
他カテゴリ

オランダ人が語る大麻大国のオランダ

Like token Tip token
46.20 ALIS
Eye catch
他カテゴリ

機械学習を体験してみよう!(難易度低)

Like token Tip token
124.82 ALIS
Eye catch
他カテゴリ

BCAAは本当に必要なのか?徹底的調査

Like token Tip token
1.20 ALIS
Eye catch
他カテゴリ

テレビ番組で登録商標が「言えない」のか考察してみる

Like token Tip token
31.20 ALIS