Language/Java

[JAVA 30] 자바 오버로딩 ( Overloading )

reifier.tistory.com 으로 이전하였습니다. 2018. 2. 14. 18:04
반응형


■ 오버라이딩 ( Overriding  ) 과 오버로딩 ( Overloading )

오버라이딩과 오버로딩은 오버~딩 이라고 

흔히들 말하기 때문에 용어 말하기에 대해서 혼동하기 쉽다고 생각합니다.

하지만 개념을 알고 보면 그렇게 비슷한 부분이 없기때문에 

그리 어렵지 않습니다.


2) 오버로딩 ( Overloading )

(1) 호출시 해당 생성자나 메소드에 매핑되어 호출되도록

    파라미터의 갯수나 타입 그리고 순서가 다르면서

 이름은 같은 생성자나 메소드를 여러개 정의하는 것


(2) 종류

 ① 생성자 오버로딩

 ② 메소드 오버로딩


(3) 조건

 ① 생성자나 메소드의 이름이 같아야 한다.

 ② 파라미터의 종류와 갯수, 그리고 순서중 하나라도 달라야 한다.

 ③ 리턴타입 일치하지 않아도 된다.

 ④ 형변환이 가능한 파라미터라도 오버로딩으로 인정한다.

 cf) 자동 형변환이 가능한 파라미터는 형변환 되어 

  해당 생성자나 메소드에 매핑이 된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class OverloadingS1{
 
    OverloadingS1(){}
    OverloadingS1(String name){
        System.out.println("0. name : " + name);
    }
 
    void m(){}
    void m(int age){
        System.out.println("1. m(int age) : " + age);
    }
    String m(String name){
        System.out.println("2. 이름 : " + name);
        return name;
    }
    void m(String name , int age){
        System.out.println("3. " + name + " : " + age);
    }
}
 
class OUser{
    public static void main(String[] args){
        OverloadingS1 ols1 = new OverloadingS1("CIVIC");
        ols1.m(100);
        ols1.m("시빅");
        ols1.m("시빅" , 100);
    }
}
cs




반응형