-1

在此处输入图像描述

所以

A a1=new A();做左边的图。

B b1=new B();做右边的图。

如果我这样做会怎样...

B c1=new A();

这在图纸中如何匹配?

另外,另一个问题。

A a1=new A();

我知道“new A()”创建了 A 矩形,“a1”创建了 a1 引用。

开头的“A”是做什么的?它在这幅画中的位置是什么?

谢谢你。

4

2 回答 2

1

B c1 = new A()通常是不正确的,除非 A 是 B 的派生类。如果是 - 它将创建一个A由名为 c1 的变量(其类类型为 B)引用的实例。

开头的 A 指定实例的类型。它通常在静态分析编译器中用于确定变量指向的实例上可用的操作。例如,如果您编写int a编译器将知道变量 a 应该被视为整数,并且如果您尝试执行int类型不支持的操作,则会在编译时发出警告/失败。

于 2013-10-19T22:03:09.487 回答
1

class A为了extends class B让你能够做到B c1 = new A();

为了了解两者如何交互,您需要了解继承以及构造函数如何交互。

于 2013-10-19T22:04:59.530 回答