Whenever you're ready, walk me through how you'd approach this.
What is the difference between overloading and overriding in Java?
Explain how Java resolves each mechanism, including when the decision is made and how inheritance affects the result. Give a small example and mention important restrictions such as static, final, and private methods.