• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:「自作クラスの型」にキャストする方法について。)

自作クラスの型にキャストする方法について

このQ&Aのポイント
  • クラスの型にキャストする方法やクラスの関係によるキャストの可否について説明します。
  • キャスト可能な関係にある場合、キャスト処理によってコンストラクタは呼ばれませんが、想定しているコールバック処理は行われることがあります。
  • クラスAAAとクラスBBBの格納場所の関係やキャストによるインスタンス生成についても解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

> bbb = new BBB(); > var = (AAA)bbb; //---★ > というような、キャストは可能ですよね?(←確認1) わざわざ書かなくともキャスト無しで var = bbb; と代入できます。下の例も見てください。 var = new BBB(); //キャスト不要 bbb = (BBB)var; //キャスト必須 ANo.1の方が書いているとおり、簡単に試してみることができる内容ばかりなのであとは自力で確認してみてください。

nbsp0606
質問者

お礼

回答ありがとうございます。 NO.1のお礼の中でも書かせて頂いた通り、 テストプログラムを書いて検証しているところなのですが、 「確認3」の所は、(AAA)とキャストしたからと言って、 AAAがnewされるわけではなさそう、ということが分かってきました。 また、「確認1」は、書籍などから、おおかた正しいであろうと思っておりまして、 これも念のためテストプログラムにて検証し、問題なさそうだと分かってきました。 salsberryさんから頂いた回答も、大変勉強になりました。 で、問題の「確認2」ですが、 パッケージの異なるソースファイルの「コンパイル、実行」のあたりで、 つまづいていて、検証できずにおります。 ということで、こちらの問題をまず解決してきます!

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

ま~確かに「試せばわかる」かもしれないけど, 究極的に「言語仕様としてそうなっている」のか, それとも「その処理系ではそうなっているけど言語としては保証されていない」のかは区別つかないんではないかな>#1&#2. Java の言語仕様って, (そうである「はず」のものは) 本屋にいけば見付かりますよね.

nbsp0606
質問者

お礼

回答ありがとうございます。 まだ私には難しい内容でしたが、なんとなく言わんとすることは分かります。 テストプログラムを的確に書ける方ですと、 そのあたりの高度な疑念が湧きそうですね。 初心者である私の場合、 まずは、自分の書いたテストプログラムが怪しい(笑)ので、 「このコードで、とりこぼしなく検証できているんだろうか」という疑念に しばしば悩まされます。 今はパッケージの異なる2~3のファイル(AAA、BBB、CCC)の コンパイル、実行あたりでつまずいております。(苦笑) がんばります!

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

簡単なテストプログラムを組めばすぐに分かることよ。 まずはやってみること。 その上で納得行かないなら質問して頂戴。

nbsp0606
質問者

お礼

回答ありがとうございます。 アドバイスを頂いた通り、テストプログラムを書き、 現在、検証しているところですが、 検証以前の所(パッケージ分け、コンパイル、実行の段階)でエラーが発生し、 こちらで停滞しております。 検証ができ次第、もし、疑問点がありましたら、補足を書かせて頂こうかと思っております。

関連するQ&A