본문 바로가기

개발/Java

[Java] 자바 - 오버로딩(Overloading)

< 메소드 오버로딩 (Overloading) >

 

- 한 클래스 안에 같은 메소드명으로 여러 메소드들을 정의하는 것

- 이때, 매개변수의 자료형의 개수, 순서, 자료형을 다 다르게 작성해야 함

- 단, 매개변수명, 접근제한자, 반환형은 영향을 주지 않음

 

* 동적바인딩

 

 

public void test() {

}

public void test(int num) {

}

public void test(int num, String str) {
    System.out.println("int num, String str");
}

public void test(String st, int num) {
    System.out.println("Sting str, int num");
}

public void test(int a, int b) {
    System.out.println("int a, int b");
}

/*
public void test(int c, int d) {
    System.out.println("int c, int d");
}
매개변수의 이름이랑은 상관없이 개수, 순서가 같기 때문에 에러가 발생함!
*/

public int test(int a, int b, String s) {
    System.out.println("int a, int b, String s");
}

/*
public int test(int a, int b, String s) {
    System.out.println("int a, int b, String s");
    return 0;
}
반환형과 상관없이 개수, 순서가 같기 때문에 에러가 발생함!
*/

/*
private void test(int a, int b, String s) {
	System.out.println("int a, int b, String s");
}
접근제한자와는 상관없이 매개변수의 자료형의 개수와 순서가 다르게 작성되어야 함
*/