Java model is more dynamic than C++ and closer to Smalltalk or Perl.
|
Subclasses don't need to to be recompiled after superclass implementation is updated.
|
C++ has "fragile superclass" problem where must recompile children if change anything (method/instance variable) in a superclass or referenced class -- Java resolves references at runtime and avoids this.
|
Classes have runtime representation (implemented in terms of the Class class) which allows one to look up type of a given object instance at runtime (in C cannot know if pointer is to integer or browser!)
-
JDK1.1 allows introspection to dynamically find out the structure of a class at runtime
-
used for automatic object serialization as when sending over network or saving on disk
|