所以
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();
为了了解两者如何交互,您需要了解继承以及构造函数如何交互。