Kahn
Kahn

Reputation: 763

Instance Vs Object

When we have base and sub class in java, and we instantiate the sub class, we get one instance or two instances? If we get two objects, how many instances we get? Does one instance holds the two objects of base and sub class or two separate instances?

Upvotes: 2

Views: 2056

Answers (6)

Pan Markosian
Pan Markosian

Reputation: 101

new classA();  //Here you create an instance of a class
classA ob      //create object named "ob" and datatype "classA"

And now we assign the instance to the object

 classA ob = new classA();

like

int num = 10

Upvotes: 0

Saul
Saul

Reputation: 18041

When we have base and sub class in java, and we instantiate the sub class, we get one instance or two instances?

We get one instance because each Java class instance is contained in a single object.

If we get two objects, how many instances we get?

The term "instance" is synonymous to object. Saying one instance is just a different way of saying one object.

Does one instance holds the two objects of base and sub class or two separate instances?

No. Java compiler creates class bytecode that contains the functionality of both base and extension, so instantiating that class results in a single object.

Upvotes: 0

Stephen C
Stephen C

Reputation: 718758

What is then the logical difference between instance and object?

In the context that you are using these words, there is no difference. An instance (of a class) is an object, and vice-versa.

However, in the broader context, an instance (of a type) is not necessarily an object - it depends on the type. For instance that you could say that 42 is an "instance" of the int type.

Upvotes: 0

rlinden
rlinden

Reputation: 2041

You get a single instance that is of the two classes - the base and the subclass.

Try to understand it with this example: there is a class Mammal and the class Human. You belong to both of them - nevertheless, there is a single instance of yourself. If there were two persons in the room, you would have two instances of both classes!

Upvotes: 4

dcast
dcast

Reputation: 111

Instance == object ... both are the same, just 2 different names. If you create one object (maybe a subclass) you get one object.

Upvotes: 1

Andrzej Doyle
Andrzej Doyle

Reputation: 103787

If you instantiate a subclass, you will get just one object/instance. This single instance will contain all of the fields of the subclass (which includes the fields defined by its parent classes).

Remember that subclasses means that you're defining a new class which derives from an existing parent, that is it inherits those definitions. So if the parent declares a field called id, the subclass will also have a field called id, and so an instantiation of that subclass will contain an id field. This field is declared in the parent class, but it does belong to the subclass.

If you instantiate the subclass, there is no instantiation of the parent. No object exists whose runtime class is the parent class.

(I'm not sure what your distinction is between "object" and "instance" in your question. You've used them in a way that implies they are different, but typically they mean exactly the same thing. An object is an instance of a particular class.)

Upvotes: 4

Related Questions