Questions like this are often well explored by experiment. Warning - some of these experiments won't even compile!
Make a class A with a method "test(String x)" that just displays any string passed in.
Make a class B that extends A with two methods: "test(String x) throws Exception" and "test(int x) throws Exception".
Then try some tests like these.
The string argument method in B is an override. When you call an instance of B with a string you run the override method, not the original. The compiler will not let you add on more checked exceptions when you override.
The int argument method in B is an overload. You started out saying the compiler would allow it to add new exceptions. Did it?
I'm being a little tricky - you asked for examples and I asked you to build your own examples. You didn't ask for an explanation of why it works this way. After you get your examples going, let's talk more about why. [ June 18, 2005: Message edited by: Stan James ]
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi