所以
A a1=new A();
左侧绘图。
和
B b1=new B();
右边的图纸。
如果我这样做会怎么样......
B c1=new A();
这如何适合绘图?
另外,另一个问题。
A a1=new A();
我理解“new A()”会创建一个A矩形 并且“a1”创建a1参考。
一开始的“A”是什么?它在哪里适合这张图?
谢谢。
答案 0 :(得分:1)
B c1 = new A()
通常不正确,除非A是来自B的派生类。如果是 - 它将创建一个名为c1的变量引用的A
实例(其类类型为B)。
开头的A指定实例的类型。它通常用于静态分析编译器,以确定变量指向的实例上可用的操作。
例如,如果您编写int a
,编译器将知道变量a应被视为整数,并且如果您尝试执行int
不支持的操作,则会在编译时发出警告/失败类型。
答案 1 :(得分:1)
class A
必须extends
class B
才能让您B c1 = new A();
为了让你理解这两者是如何交互的,你需要了解继承以及构造函数如何交互。