Question: what is the difference between compile-time binding and run-time binding?
Answer: Static binding happens at compile-time while dynamic binding happens at runtime. Binding of private, static and final methods always happen at compile time since these methods cannot be overridden.