오버로딩

메소드 오버로딩(Method Overloading)

  • 같은 클래스 내에서 같은 이름의 메소드를 여러개 선언하는 것을 말합니다.

  • JVM은 같은 이름의 메소드가 있으면 메소드가 받는 인수의 갯수와 데이터 타입을 비교하여 다르면 각각 다른 메소드로 인식을 합니다. 단 return 타입은 메소드를 구분하는 조건으로 사용하지 않습니다.

method overloading 의 대표적인 경우

  • System.out.println(1);

  • System.out.println(1.5);

  • System.out.println("우리는 한국인입니다.");

  • System.out.println("IT 기술을 " + " 다양한 분야로 적용해야 합니다.");

method overloading 을 사용하지 않는 경우

  • public void printInt(int x){ }

  • public void printFloat(float x){ }

  • public void printString(String x){ }

메소드 오버로딩을 적용한 경우

  • public void println(int x){ }

  • public void println(float x){ }

  • public void println(String x){ }

  • PrintStream 클래스의 메소드 오버로딩 예)

    • void print(char c){ } //print('C')

    • void print(double d){ } //print(10.5)

    • void print(float f){ } //print(10.5f)

    • void print(int i){ } //print(10)

    • 메소드가 호출되는 경우 메소드의 인수의 데이터 타입과 갯수가 일치하는 메소드가 호출됩니다.

    • println()메소드 및 생성자는 대표적인 메소드 오버로딩의 예입니다.

    • 개발시에는 좀더 많은 시간이 소요되나 개발된 클래스를 이용시에는 많은 속도 향상을 가져옵니다.

메소드 오버로딩 실습

AvgTest.java

Last updated