[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차 변형 등을 할 경우

민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."