Dynamic binding means the runtime finds the type of an object (probably from its Class<T> object) and uses that type to look for the types of methods invoked. It applies to overridden class members. And the only kind of class member you can override is an instance method. Static binding means the compiler finds the type of ...