2013-10-19 60 views
-1

enter image description here当你创建一个这样的对象时会发生什么?

所以

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

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

如果我做到这一点...

B c1=new A(); 

如何将这项拟合图中?

另外,还有一个问题。

A a1=new A(); 

据我所知, “新的A()” 创建一个矩形 和 “A1” 创建A1参考。

“A”在开始时做了什么?它在哪里适合这幅画?

谢谢。

+1

你到底在问什么?你在谈论继承吗? – kmas

+0

“开始时的A”是a1的引用类型 - 它定义了变量a1可以包含哪种对象引用。并且注意'int i1 = 7;'是声明一个int类型的变量(整型),它可以包含一个数字(在本例中为7)。这不是对象的“引用”,而是“标量”值。 –

+0

绘图从哪里来?这是一个功课问题吗? – pburka

回答

1

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

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

1

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

为了让您了解这两个如何相互作用,你需要了解继承以及如何构造相互作用。

相关问题