In object-oriented programming, static dispatching is a method dispatch that resolves a call to a method at compile time. It's a form of polymorphism that's fully resolved during compile time.
Static dispatching is also known as early binding. It's the default dispatch mode when the concrete type can be determined at compile time.
In contrast, dynamic dispatching, also known as run-time dispatch or late binding, defers the decision to run time. Dynamic dispatching is used when the concrete type implementing the trait is not known at compile time.
Most object-oriented programming languages support dynamic dispatching because it allows polymorphism to exist.