Reputation: 2835
I was studying Polymorphism from "Head First Java" and came to this concept. Can anyone explain it please with an example?
Compiler checks the class of reference type -- not the Object type.
So what's the difference between Reference Type and Object Type?
Upvotes: 20
Views: 26846
Reputation: 37822
What is meant by the terms is the following:
Maybe some will find it easier to understand with these terms.
Upvotes: 11
Reputation: 308021
I don't think their use of "object type" and "reference type" is standardized, but here's my interpretation.
Consider this code:
Object o = new Integer(3);
The reference o
is of type Object
. The object that it references is of type Integer
.
So the "reference type" would be Object
and the "object type" would be Integer
.
What makes this confusing is that there's the (standardized, official) term "reference type" that encapsulates types that can be referenced. In Java that includes all classes, enums, interfaces, arrays. It excludes only the primitive types (int
, ...).
Upvotes: 46