Differences Between Overloaded and Overridden Methods : overloading method « Object Oriented « SCJP






Overloaded Method    Overridden Method

Argument(s)   Must change.         Must not change.

Return type   Can change.          Can't change except for covariant returns.

Exceptions    Can change.          Can reduce or eliminate. Must not throw new or broader checked exceptions.

Access        Can change.          Must not make more restrictive (can be less restrictive).


public class MainClass {
  public static void main(String[] argv) {
    System.out.println(calc(1, 2));
    System.out.println(calc(1.1F, 2.2F));
  }

  public static int calc(int a, int b) {
    System.out.println("int");
    return a + b;
  }

  public static float calc(float a, float b) {
    System.out.println("float");
    return a + b;
  }
}








6.5.overloading method
6.5.1.Method overloading
6.5.2.Be careful to recognize when a method is overloaded rather than overridden.
6.5.3.Invoking overloaded methods:
6.5.4.Method overloading and class hierarchy
6.5.5.Differences Between Overloaded and Overridden Methods
6.5.6.A difference in return type is insufficient to constitute an overload.
6.5.7.Different list of thrown exceptions is insufficient to constitute an overload.
6.5.8.A method is identified by its fully qualified class name, the method name, and the exact sequence of its argument types.
6.5.9.Overloading is the re-use of a method name in the one class or subclass for a different method.
6.5.10.Overloaded methods supplement each other; an overriding method replaces the method it overrides.
6.5.11.Overloaded methods can exist, in any number, in the same class.
6.5.12.The return type of an overloaded method may be chosen freely
6.5.13.Overloaded methods may have different return types.
6.5.14.Overloaded methods have the same name but different arguments.