티스토리 뷰

LANGUAGE/JAVA

[JAVA] 메서드 오버로딩,오버라이딩

찰떡쿠키부스트 2017. 11. 15. 09:49

 

메서드 오버로딩

 

하나의 클래스에 이름이 같은 메서드를 여러개 선언.

단,매개변수의 자료형과 갯수로 구분할 수 있어야 한다.

이때 반환형은 메서드 오버로딩과 아무런 관련이 없다.

class A{

void a(){}

void a(int v){}

void a(int v1, int v2){}

void a(String v){}

void a(int v1, String v2){}

​int a(){} // 컴파일에러 (매개변수 같음)

} ​ ​

 

메서드오버라이딩 

 

 부모메서드를 자식클래스에서 재정의하는 경우


1. 메서드의 시그너처는 같아야한다.
2. 접근제어는 좁아질 수 없다.
3. private, static , final메서드는 오버라이딩 할 수 없다.
4. Exception추가는 불가능하다.

[ex]
class A{
void a(){}
}
class B extends A{
void a(){} // 메서드오버라이딩
void a(int b){} // 메서드오버로딩
int a(){ return 100; } // 컴파일에러
}

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

[JAVA] 기타제어자  (0) 2017.11.15
[JAVA] 다형적변수  (0) 2017.11.15
[JAVA] 접근제어자  (0) 2017.11.15
[JAVA] 상속  (0) 2017.11.15
[JAVA] 생성자  (0) 2017.11.15
댓글