Dynamic, or late, binding occurs when a method is defined for several classes in a family, but the actual code for the method is not attached, or bound, until execution time.This gives support for overriding...

Static binding occurs when a method is defined with the same name but with different headers and implementations. The actual code for the method is attached, or bound, at compile time. Static binding is used to support overloaded methods in Java.

Hi vinny What you say is correct and this has been discussed many times in this forum.Which method to be called is decided at runtime only but not at compile time.At compile time it just checks whether syntax is correct or not but does not perform any operations more than that.Dont know why people have termed both as static(overloading) and dynamic(overriding) which is not even clear to me.