教育・子育て

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

マんタ's icon'
  • マんタ
  • 2024/09/08 00:30

 

前回ダウンキャストの説明が途中でしたのでまずはそこからwww

次のように

3.キャストによる強制的な代入とinstanceof演算子

 

スーパークラスのオブジェクトを キャスト すればコンパイルエラーにならずに

サブクラスの型の変換に代入できます。キャストは強制的な型変換です。

 

Student student = (Student)(new Member("田中 宏"));

コレはできるというだけです。コンパイルが通っただけで、実行するとエラーの確率が高いですwww

多くの場合、プログラムを実行すると不正な型変換をしたという実行時例外が発生します。

これは、サブクラス型へのキャストでダウンキャストといいます。

ダウンキャストは危険な操作なので避けなければいけない!

 

というところまで説明しました。

 

で、次のようにもともと変数memberにStudent型のオブジェクトが入っていた場合はダウンキャストしてもよいケースです。

 

Student student = (Student)member;   

  //ダウンキャスト

Content image

この時、変数memberに入っているオブジェクトが本当にStudent型かどうか調べたうえでキャストできれば安全です。

そのために使用するのがinstanceof演算子です。

instanceof演算子は、変数の中にあるオブジェクトの型を次の書式で調べることができます。

Content image
package sample18_02;
public class Exec {
public static void main(String[] args) {
 Object obj = new Member(118, "田中 宏");
 System.out.println(obj instanceof Object);
 System.out.println(obj instanceof Member);
 System.out.println(obj instanceof Student);
}
}

で、実際にやってみるとプログラムはこんな感じです。

Content image

コンソールにはこう表示されます。

 

図で説明すると次のようになります。

Content image

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

参考書は__________________________________

新わかりやすい Java

川場 隆  Kawaba Takashi

秀和システム

______________________________________

BY マんタ

Supporter profile iconSupporter profile icon
Article tip 2人がサポートしています
獲得ALIS: Article like 6.03 ALIS Article tip 3.00 ALIS
マんタ's icon'
  • マんタ
  • @25kit6
11月になりましたねwwwだんだん寒くなって来たしそろそろ本格的な冬モードかな?怪しげな風邪と菌も流行ってるみたいだし予防と消毒はしっかりしないとね!

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
他カテゴリ

京都のきーひん、神戸のこーへん

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

無料案内所という職業

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

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

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

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

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

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

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

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

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

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

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

【科学(化学)】進化に必要だった猛毒のガス~酸素~

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

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

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

ALISのシステム概観

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

警察官が一人で戦ったらどのくらいの強さなの?『柔道編』 【元警察官が本音で回答】

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

Bitcoinの価値の源泉は、PoWによる電気代ではなくて"競争原理"だった。

Like token Tip token
159.32 ALIS