创建这样的对象会发生什么?

时间:2013-10-19 21:59:00

标签: java object reference

enter image description here

所以

A a1=new A();左侧绘图。

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

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

B c1=new A();

这如何适合绘图?

另外,另一个问题。

A a1=new A();

我理解“new A()”会创建一个A矩形 并且“a1”创建a1参考。

一开始的“A”是什么?它在哪里适合这张图?

谢谢。

2 个答案:

答案 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();

为了让你理解这两者是如何交互的,你需要了解继承以及构造函数如何交互。