오버로딩 / java

aljongjong·2021년 8월 29일
0

맨날까먹는거

목록 보기
5/13

메소드 오버로딩(Method Overloading)

  • 한 클래스 내에 동일한 이름의 메소드를 둘 이상 정의하는 것은 허용되지 않는다. 그러나 매개변수의 선언이 다르면 가능하다. —> 메소드 오버로딩
class MyHome {
	void mySimpleRoom(int n) { ••• }
	void mySimpleRoom(int n1, int n2) { ••• }
	void mySimpleRoom(double d1, double d2) { ••• }
}

  • 메소드의 이름이 같아도 매개변수 선언이 다르면 메소드 호출문의 전달인자를 통해서 호출된 메소드를 구분할 수 있다.
  • 반환형이 다른 경우에는 메소드 오버로딩이 성립하지 않는다. —> 반환형은 메소드를 선택하는데 있어서의 판단 기준이 아니기 때문
    - int simpleMethod() { ••• }, double simpleMethod() { ••• } —> 반환형이 다른건 메소드 오버로딩 성립 XXX

  • 매개변수의 수는 같지만 매개변수의 형이 다른 경우의 메소드 오버로딩
class AAA {
	void simple(int p1, int p2) { ••• }
    	void simple(int p1, double p2) { ••• }
}

AAA inst = new AAA();
inst.simple(7, ‘K’) 
—> 자동 형 변환 규칙을 적용하되 가장 가까운 위치에 놓여있는 자료형으로 형 변환을 우선 시도 
—> void simple(int p1, int p2) { ••• } 호출

  • 생성자의 매개변수 선언이 다르면 이 또한 오버로딩 관계이다.

0개의 댓글

관련 채용 정보