そう
A a1=new A();
左側の描画を行います。
と
B b1=new B();
右側の描画を行います。
これをしたらどうなるか...
B c1=new A();
それはどのように図面に収まりますか?
また、別の質問です。
A a1=new A();
「new A()」が A の四角形を作成し、「a1」が a1 参照を作成することを理解しています。
冒頭の「A」は何をしているの?そして、それはこの図のどこに当てはまりますか?
ありがとうございました。
B c1 = new A()
A が B から派生したクラスでない限り、一般的に正しくありません。そうである場合、A
c1 という名前の変数 (クラス タイプが B) によって参照される のインスタンスが作成されます。
先頭の A は、インスタンスのタイプを指定します。変数が指しているインスタンスで使用可能な操作を決定するために、静的解析コンパイラでよく使用されます。たとえばint a
、コンパイラは、変数 a を整数として扱う必要があることを認識し、int
型でサポートされていない操作を実行しようとすると、コンパイル時に警告/失敗します。
class A
あなたができるようにextends
class B
するために必要ですB c1 = new A();
この 2 つがどのように相互作用するかを理解するには、継承とコンストラクターがどのように相互作用するかを理解する必要があります。