티스토리 뷰
메서드 오버로딩
하나의 클래스에 이름이 같은 메서드를 여러개 선언.
단,매개변수의 자료형과 갯수로 구분할 수 있어야 한다.
이때 반환형은 메서드 오버로딩과 아무런 관련이 없다.
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 |
댓글