본문 바로가기
Backend/JAVA

JAVA 메서드 오버로딩

by YERIEL_염주둥 2020. 4. 22.
728x90

1. 메서드 오버로딩

- 동일한 메서드명으로 메서드 선언이 가능하다.
- 단, 인수타입, 인수갯수가 달라야한다.



2. 메서드 오버로딩 호출

package kr.or.ksmart;

import java.io.File;

class User{//데이터 저장 형태
	private String name;
	private String age;
	public void setUserInfo(String name) {
		this.name = name;
	}
	public void setUserInfo(String name, String age) {
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public String getAge() {
		return age;
	}
}

class UserInfoService{// 같은 처리- 코드 재작성 할 필요가 없음
	public int userAddProcess(User user){
		System.out.println("userAddProcess 호출");
		return 1;
		
	}
	public int userAddProcess(User user, File file) {
		int result =userAddProcess(user);
		if(result > 0) {
			//파일 처리
			System.out.println("userAddProcess 오버로딩 호출");
		}
		return result;
		
	}
}

public class JavaBasic01 {

	public static void main(String[] args) {
		
		User user = new User();
		user.setUserInfo("홍길동", "20");
		
		File file = null;

		UserInfoService service = new UserInfoService();
		service.userAddProcess(user);
		
	}

}

 

 


3. 주의점

- 메서드의 리턴타입으로 메서드 오버로딩 할 수 없다. 
- 메서드의 인수명으로도 메서드 오버로딩을 할 수 없다.

 

4. 오버로딩 에러

1. 같은 매개변수 타입, 매개변수명만 다를 경우

 

2. 리턴데이터 타입이 다를 경우

 

반응형

'Backend > JAVA' 카테고리의 다른 글

JAVA 상속  (0) 2020.04.22
JAVA 생성자 설계하기  (0) 2020.04.22
JAVA 실습. 클래스  (0) 2020.04.21
JAVA 형 변환  (0) 2020.04.21
JAVA 클래스  (0) 2020.04.21

댓글