메소드 오버로딩(Method Overloading) 이란?
같은 이름의 메소드를 여러 개 정의하되, 서로 다른 매개변수 목록을 가지도록 하는 프로그래밍 기법이다.
메소드 오버로딩을 통해 같은 동작을 수행하지만, 입력값이 다를 경우 다른 방식으로 처리할 수 있다.
함수이름 하나만 가지고도 실행할 수 있게된다. (ex) add함수
public class AddMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
//메소드 오버로딩 하기 전
Add add1 = new Add();
int result = add1.add(3, 4);
System.out.println(result);
double result2 = add1.addDouble(3.9, 2.88);
System.out.println(result2);
String result3 = add1.addString("hi","bye");
System.out.println(result3);
//메소드 오버로딩
int result4 = add1.add(3,10,7);
System.out.println("result4 : " + result4);
}
}
public class Add {
//메소드 오버로딩 하기 전
int add(int x, int y) {
return x+y;
}
double addDouble(double x, double y){
return x+y;
}
String addString(String x, String y){
return x + " , " + y;
}
//메소드 오버로딩
int add(int x, int y, int z){
return x + y + z;
}
}
+ 예시를 보자. Parent는 오버로딩 하였고, Child는 오버로딩 하지 않았다.
다음과 같이 함수 자체에 파라미터를 직접 입력하는 것을 오버로딩 한다고 한다.
*** 오버로딩할 때 중요한 점은, 디폴트 클래스를 만들어 주어야 한다는 점이다.
public Parent() {
}
처럼 디폴트를 해주지 않는다면, 모든 Parent() 클래스가 아래와 같이 오버로딩 한 함수로 적용되기 때문에,
Child에서 Parent를 이용할 때 등 오류가 발생한다.
'Java' 카테고리의 다른 글
자바의 Getters와 Setters 사용하는 이유와 방법 알아보기 (0) | 2024.05.31 |
---|---|
자바의 생성자(Constructor)와 접근 제어자(Access) (0) | 2024.05.31 |
자바의 메모리(Memory) 영역 개념 (0) | 2024.05.31 |
자바의 함수(Function) 개념 (0) | 2024.05.31 |
자바(Java)의 OOP(객체지향 프로그래밍) 개념 (0) | 2024.05.22 |