2

当我们在java中有基类和子类,并且我们实例化子类时,我们得到一个实例还是两个实例?如果我们得到两个对象,我们得到多少个实例?一个实例包含基类和子类的两个对象还是两个单独的实例?

4

6 回答 6

4

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

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

如果实例化子类,则不会实例化父类。不存在其运行时类是父类的对象。

(我不确定您的问题中“对象”和“实例”之间的区别是什么。您以暗示它们不同的方式使用它们,但通常它们的含义完全相同。对象是实例特定类别的。)

于 2012-05-22T12:08:50.480 回答
4

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

试着用这个例子来理解它:有一个类 Mammal 和一个类 Human。你属于他们俩——尽管如此,你只有一个实例。如果房间里有两个人,您将拥有两个类的两个实例!

于 2012-05-22T12:10:51.940 回答
1

Instance == object ...两者都是相同的,只是两个不同的名称。如果您创建一个对象(可能是子类),您将获得一个对象。

于 2012-05-22T12:10:03.790 回答
0

那么实例和对象之间的逻辑区别是什么?

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

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

于 2012-05-22T12:22:18.933 回答
0

当我们在java中有基类和子类,并且我们实例化子类时,我们得到一个实例还是两个实例?

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

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

术语“实例”是对象的同义词。说一个实例只是说一个对象的另一种方式。

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

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

于 2012-05-22T12:23:19.483 回答
0
new classA();  //Here you create an instance of a class
classA ob      //create object named "ob" and datatype "classA"

现在我们将实例分配给对象

 classA ob = new classA();

喜欢

int num = 10
于 2018-03-14T00:35:57.797 回答