質問編集履歴

2

誤解を招く記述を削除しました

2022/11/12 09:50

投稿

etherwind
etherwind

スコア28

test CHANGED
File without changes
test CHANGED
@@ -210,5 +210,3 @@
210
210
  ・「sa[0] = new SubB();」を見て私が思うのは、SuperA型の配列のsa[0]の中はSubB()で使うからSubB()で初期化する、ってことかな? です。
211
211
 
212
212
  この宣言の部分はネットや教科書でも調べたのですが、記述の仕方が中心に解説されており、なんでそう書くのか、どんな処理をしているのか、という部分に関しては、私でもわかる記述に行き当たることができませんでした。どなたか噛み砕きまくった解説を所望します。
213
-
214
- 私の理解では、親クラスから子クラスへのアクセスはできないので、宣言で指定するクラスは、使用する予定の全てのクラスにアクセスできる最上位のクラスで宣言する、だから今回の場合は「SuperA[] sa = new SuperA[2];」で良い、くらいしか説明できません。(SubB[] sa = new SuperA[2]; でやるなど、宣言部分のクラス名をいろいろ入れ替えて呼び出せるメソッドを見分けてその結論に至りました)

1

書き間違えがありました。

2022/11/12 09:49

投稿

etherwind
etherwind

スコア28

test CHANGED
File without changes
test CHANGED
@@ -211,4 +211,4 @@
211
211
 
212
212
  この宣言の部分はネットや教科書でも調べたのですが、記述の仕方が中心に解説されており、なんでそう書くのか、どんな処理をしているのか、という部分に関しては、私でもわかる記述に行き当たることができませんでした。どなたか噛み砕きまくった解説を所望します。
213
213
 
214
- 私の理解では、クラスからクラスへのアクセスはできないので、宣言で指定するクラスは、使用する予定の全てのクラスにアクセスできる最上位のクラスで宣言する、だから今回の場合は「SuperA[] sa = new SuperA[2];」で良い、くらいしか説明できません。(SubB[] sa = new SuperA[2]; でやるなど、宣言部分のクラス名をいろいろ入れ替えて呼び出せるメソッドを見分けてその結論に至りました)
214
+ 私の理解では、クラスからクラスへのアクセスはできないので、宣言で指定するクラスは、使用する予定の全てのクラスにアクセスできる最上位のクラスで宣言する、だから今回の場合は「SuperA[] sa = new SuperA[2];」で良い、くらいしか説明できません。(SubB[] sa = new SuperA[2]; でやるなど、宣言部分のクラス名をいろいろ入れ替えて呼び出せるメソッドを見分けてその結論に至りました)