2012-05-22 172 views
2

当我们在java中有基类和子类时,我们实例化子类,我们得到一个或两个实例?如果我们得到两个对象,我们得到了多少个实例?一个实例是否拥有基类和子类的两个对象或两个单独的实例?实例vs对象

回答

0

当我们在java中有基类和子类时,我们实例化了sub 类,我们得到一个或两个实例?

我们得到一个实例,因为每个Java类实例都包含在一个对象中。

如果我们得到两个对象,我们得到了多少个实例?

术语“实例”与对象同义。说一个实例是说一个对象的不同方式。

是否有一个实例包含基类和子类的两个对象或两个 单独的实例?

编号Java编译器创建的类字节码包含基本和扩展的功能,因此将该类实例化为单个对象。

4

如果你实例化一个子类,你只会得到一个对象/实例。这个单一实例将包含子类的所有字段(其中包括由其父类定义的字段)。

请记住,子类意味着您正在定义一个新的类,其中从现有父级派生出,即它继承了这些定义。因此,如果父级声明名为id的字段,则子类也将具有名为id的字段,因此该子类的实例化将包含id字段。该字段为,在父类中声明为,但它确实属于子类。

如果您实例化子类,则不会实例化父类。没有存在其运行时类为父类的对象。我不确定你的问题中“对象”和“实例”之间的区别是什么,你用它们暗示它们是不同的,但通常它们意味着完全相同的东西。对象是特定类的一个实例。)

+0

什么是实例和对象之间的逻辑差异? – Kahn

+0

@Hesper:没什么。当你强调它是一个特定类的实例时,你倾向于使用“实例”。但是所有对象都是* some *类的实例,并且所有实例都是对象。他们是不同的术语,具有不同的细微差别,同样的事情。 –

1

实例==对象...都是相同的,只是2个不同的名称。如果你创建一个对象(也许是一个子类),你会得到一个对象。

4

您将得到一个属于两个类的单个实例 - 基类和子类。

试着用这个例子来理解它:有一个类哺乳动物和类​​人类。你属于他们两个 - 但是,你自己有一个例子。如果房间里有两个人,你会有两个班的两个实例!

0

什么是实例和对象之间的逻辑差异?

在您使用这些词的上下文中,没有区别。 (类的)实例是一个对象,反之亦然。

但是,在更广泛的上下文中,(类型的)实例不一定是一个对象 - 它取决于类型。例如,你可能42int类型的“实例”。