description of itselffor to convert itself to stringor for to return the value of one of its data fields the secondary way that can interact with is for to access one of ' fields directlybut only if has given other objects like permission to do so for examplean instance of the java class integer storesas an instance variablean integerand it provides several operations for accessing this dataincluding methods for converting it into other number typesfor converting it to string of digitsand for converting strings of digits to number it does not allow for direct access of its instance variablehoweverfor such details are hidden dynamic dispatch when program wishes to invoke certain method (of some object oit sends message to owhich is usually denotedusing the dot-operator syntax (section )as " (in the compiled version of this programthe code corresponding to this invocation directs the run-time environment to examine ' class to determine if the class supports an (methodandif soto execute it specificallythe run-time environment examines the class to see if it defines an (method itself if it doesthen this method is executed if does not define an (methodthen the run-time environment examines the superclass of if defines ()then this method is executed if does not define ()on the other handthen the run-time environment repeats the search at the superclass of this search continues up the hierarchy of classes until it either finds an (methodwhich is then executedor it reaches topmost class (for examplethe object class in javawithout an (methodwhich generates run-time error the algorithm that processes the message (to find the specific method to invoke is called the dynamic dispatch (or dynamic bindingalgorithmwhich provides an effective mechanism for locating reused software it also allows for another powerful technique of object-oriented programming--polymorphism polymorphism literally"polymorphismmeans "many forms in the context of object-oriented designit refers to the ability of an object variable to take different forms objectoriented languagessuch as javaaddress objects using reference variables the reference variable must define which class of objects it is allowed to refer toin terms of some class but this implies that can also refer to any object belonging to class that extends now consider what happens if defines an (method and also defines an (method the dynamic dispatch algorithm for method invocation always starts its search from the most restrictive class that applies when refers to an object from class tthen it will use ' (method when asked for ()not ' in this caset is said to override method (from alternativelywhen refers to an object from class (that is not also object)it will execute