메소드 오버라이딩이란?
조회 1,629 · 댓글 0
- 자식 클래스에서 부모 클래스에 있는 메소드와 동일하게 선언.
- 리턴 타입, 접근 제어자, 이름, 변수 타입 및 수가 모두 동일해야 함.
- 메소드 오버로딩과 혼동하지 말 것!
- Child에서 Parent의 메소드와 변수를 사용할 수 있지만, Parent에서는 Child의 메소드와 변수를 사용할 수 없다. 반드시 명시적인 형 변환이 필요함.
- 오버라이딩된 메소드 호출
1) Parent = Parent
2) Child = Child
3) Parent = Child -> 메소드 호출은 Child()에 오버라이딩된 것을, 변수는 Parent
4) Child = (Child)Parent : CastClassException
5) Parent p = new Parent(); Child c = (Child)p; -> 메소드 호출과 변수 모두 Child()
- 리턴 타입, 접근 제어자, 이름, 변수 타입 및 수가 모두 동일해야 함.
- 메소드 오버로딩과 혼동하지 말 것!
- Child에서 Parent의 메소드와 변수를 사용할 수 있지만, Parent에서는 Child의 메소드와 변수를 사용할 수 없다. 반드시 명시적인 형 변환이 필요함.
- 오버라이딩된 메소드 호출
1) Parent = Parent
2) Child = Child
3) Parent = Child -> 메소드 호출은 Child()에 오버라이딩된 것을, 변수는 Parent
4) Child = (Child)Parent : CastClassException
5) Parent p = new Parent(); Child c = (Child)p; -> 메소드 호출과 변수 모두 Child()
로그인 후 답글을 남길 수 있습니다.