[JAVA]/08. 상속
03. 오버라이딩 (Overriding)
76beny
2022. 4. 13. 14:04
오버라이딩 (Overriding)-덮어쓰다
■ 정의
- 자식클래스가 상속받은 부모메소드를 재작성(재정의) 하는것.
- 부모가 제공하는 기능을 후손이 일부 고쳐 사용하겠다는 의미.
- 자식 객체를 통한 실행 시 후손의 것이 우선권을 가짐.
■ 특징
1. 메소드 헤드라인 위에 반드시 Annotation(주석), @override표시!(표시하는거 습관들이기)
2. 접근제어자를 부모것보다 같거나 넓은 범위로 변경 가능.
3. 부모 메소드의 예외처리 클래스 처리범위보다 좁은 범위로 예외처리 클래스 수정이 가능!
■ 성립조건
[부모클래스의 메소드와 자식클래스의 메소드 비교]
-선언부(반환타입,메서드이름,매개변수목록) 이 조상클래스의 메서드와 일치해야함.
-매개변수의 개수, 타입 동일 ( 즉, 똑같은 함수를 만들어야함)
- 리턴타입 동일
-접근제한자는 부모클래스의 메소드와 같거나 더 넓은 범위
- 예외 발생시 같은 예외 형식이거나 더 구체적인 예외형식(조상클래스의 메서드보다 많이 선언할수있다)
-private메소드 오버라이딩 불가
-final 메소드 오버라이딩 불가
코드예시
Class parent{
void parentMethod{}
}
class child extends parents{
void parentMethod(){} //오버라이딩
void parentMethod(int i ){} //오버로딩
void childMethod(){}//메서드정의
void childMethod(int i ) {} // 오버로딩
void childMethod(){}//에러! 중복정의
"본 인터넷 사이트 내의 모든 이미지, 문구, 콘텐츠, 내용 등에 대한 저작권은 76beny에게 있습니다.
이를 무단으로 도용, 복사, 전재, 재배포, 2차 변형 등을 할 경우
민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."