오버로딩
오버로딩(overloading)이란 하나의 클래스(class)에 같은 이름을 가진 메소드(method)를 여러 개 정의하는 것을 말한다. 예를 들어, println(int x)를 정의한 후 다시 println(char x)를 추가함으로써, 정수(int)와 문자(char)를 모두 출력할 수 있다. 오버로딩을 통해 메소드 이름만 같고, 인수의 개수나 타입이 서로 다른 여러 개의 메소드를 만들 수 있다.
구조
하나의 클래스 안에 같은 이름을 가지고 있는 메소드를 여러개 정의한다. 매개변수의 개수나 유형을 다르게 하여 같은 이름의 메소드들이 다른 결과값을 출력할 수 있게 한다.
public class 클래스이름 { // A메소드 호출 void A메소드() { System.out.println("매개 변수값 = 없음"); } // A메소드에 매개변수a로 int형 호출 void A메소드(int a) { System.out.println("매개 변수값 = " + a); } // A메소드에 매개변수a로 char형 호출 void A메소드(char a) { System.out.println("매개 변수값 = " + a); } }
실행 방법(예시)
// 오버라이딩하기 위한 클래스 생성 public class Overloading { // test() 호출 void test() { System.out.println("매개변수 = 없음"); } // test에 매개변수a로 int형 호출 void test(int a) { System.out.println("매개변수 = " + a); } // test에 매개변수a,b로 int형 2개 호출 void test(int a, int b) { System.out.println("매개변수 = " + a + "," + b); } // test에 매개변수a로 char형 호출 void test(char a) { System.out.println("매개변수 = " + a); } }
// 위의 생성된 클래스 사용 public class test { public static void main(String[] args) { // 객체 생성 Overloading ol = new Overloading(); // test() 호출 -> 출력 : 매개변수 = 없음 ol.test(); // test(int a, int b) 호출 -> 출력 : 매개변수 = 5 , 10 ol.test(5, 10); // test(char a) 호출 -> 출력 : 매개변수 = x ol.test(x); } }
각주
참고자료
- 개발이 하고 싶어요, <오버로딩(Overloading) 오버라이딩(Overriding)>, 2013-12-09