The object class is the root class of the class hierarchy.
Why object class is the super class for all java classes?
Because of below 2 reasons object class is made as super
class for every class.
Reusability: every object has 11 common properties. These properties
must be implemented by every class developer. So to reduce burden on developer
SUN developed a class called object by implementing all these 11 properties
with 11 methods. All these 11 methods have generic logic common for all
subclasses. If this logic is not satisfying subclass requirement then subclass
can override it.
To achieve runtime polymorphism: so that we can write single
method to receicve and send any type of class object as argument and as return
type.
What are the common functionalities of every class object?
1. Comparing two objects:
Public Boolean equals(Object obj)
2. Retrieving hashcode(object identity)
Public native int hashCode()
3. Retrieving the runtime class object reference:
Public final native Class getClass()
4. Retrieving object information in String format for printing
purpose:
Public String toString()
5. Cloning Object:
Protected native Object clone() throws
CloneNotSupportException
6. Executing object clean-up code/ resource releasing code:
Protected void finalize() throws Throwalbe
7.8,9: Releasing object lock and sending thread to waiting state:
Public final void wait() throws InterruptedException
Public final native void wait(long millis) throws
InterruptedException
Public final void wait(long millis,int nanos) throws
InterruptedException
10,11:.Notify about object lock availability to waiting threads:
Public final native void notify()
Public final native void notifyAll()
All above operations are implemented with generic logic that
is common for all objects, so that developer can avoid implementing these
operation in every class, also SUN can ensure that all the operations are
overridden by developers with the same method prototype. This feature will
provide runtime polymorphism.
Developer should override these methods with object state.
We can override below five methods:
- Equals
- hashCode
- toString
- clone
- finalize
sun recommended to override equals,hashCode,toString method
in all classes.
No comments:
Post a Comment