In object-oriented programming sending a message to an object (to invoke a method) is equivalent to calling a procedure in traditional programming languages, except that the actual code executed may only be selected at run time depending on the class of the object. Thus, in response to the message "drawSelf", the method code invoked would be different if the target object were a circle or a square.