[JAVA] 오버로딩(OverLoading )
2020. 5. 7. 17:45ㆍJAVA
오버 로딩?
매개변수를 다르게 하여 같은 이름의 메소드를 생성하는 기술이다.
오버 로딩이 왜 필요한가?
다형성 때문이다. 여기서 다형성이란? 같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질을 말한다.
오버 로딩의 조건?
- 메소드의 명이 동일해야 한다
- 매개변수의 유형 혹은 개수가 달라야 한다.
오버 로딩 에도 크게 두 가지 메소드 오버 로딩, 생성자 오버 로딩이 있다. 둘 다 개념은 같다.
예제를 보면서 좀더 알아보자.
생성자 오버 로딩
생성자는 클래스 명과 동일하게 오버 로딩을 위해서는 동일한 메소드 명, 매개변수 유형과 개수를 각각 다르게 한다.
생성자를 선언할 때 매개변수의 값에 따라 출력 값이 달라질 것이다. 이 처럼 오버 로딩은 다형성을 위한 기술이다.
출력 값
첫 번째 출력은 첫번째 생성자인 기본 생성자
두 번째는 매개변수 String 인 생성자
세 번째 출력 값은 매개변수 String, int 인 생성자인 것을 확인할 수 있다.
메소드 오버 로딩
생성자 오버 로딩과 마찬가지로 동일한 메소드 명, 매개변수 개수 혹은 유형을 다르게 한다.
같은 메소드 명으로 다른 결괏값인 메소드가 3개 가 생성이 되었다.(다형성)
출력 값
첫 번째 오버 로딩 메서드를 호출한 ovd.arithnetic(4) -> a x a의 결괏값을 호출
두 번째 오버 로딩 메소드를 호출한 ovd.arithnetic(6, 7) -> a + b의 결괏값을 호출
세 번째 오버 로딩 메소드를 호출한 ovd.arithnetic(6, 8, 2) -> a x b /c의 결괏값을 호출
'JAVA' 카테고리의 다른 글
[JAVA] 추상 클래스(Abstract Class) (0) | 2020.05.18 |
---|---|
[JAVA]오버라이딩(Overriding) (1) | 2020.05.10 |
[JAVA] Map(HashMap) (1) | 2020.04.22 |
[JAVA] List - ArrayList (2) | 2020.04.12 |
[JAVA] 배열(Array)의 응용 (0) | 2020.04.07 |