티스토리 뷰
Goal
- 오버라이딩에 대해 이해한다.
- 애노테이션에 대해 이해한다.
- 형 변환시 오버라이딩 메서드 호출에 대해 이해한다.
- 가상 메서드의 개념에 대해 이해한다.
1. 오버라이딩 (overriding)
- 상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우, 하위 클래스에서 동일한 이름의 메서드를 재정의 할 수 있음.
2. @override 애노테이션(Annotation)
- 재정의된 메서드라는 의미로 선언부가 기존의 메서드와 다른 경우 에러 발생
- Annotation은 컴파일러에게 특정한 정보를 제공해주는 역할을 함.
3. 형 변환과 오버라이딩 메서드 호출
Customer vc = new VIPCustomer();
vc.calcPrice(10000);
- 위 코드에서 calcPrice() 메서드는 어느 데이터타입의 메서드가 호출 될 것인가?
- 자바에서는 항상 인스턴스 (여기서는 VIPCustomer)의 메서드가 호출 됨 (가상 함수)
4. 가상 메서드(virtual method)
- 메서드의 이름과 메서드의 주소를 가진 가상 메서드 테이블에서 호출될 메서드의 주소를 참조함.
- 메서드의 이름은 컴파일이 되면 주소가 됨. 따라서 같은 메서드의 이름(주소)은 존재하지 않음.
- 가상함수 어드레스 매핑에 의해 재정의된 메서드가 호출됨.
'Java > Java 올인원 패키지' 카테고리의 다른 글
17. 추상 클래스, 템플릿 메서드 (Java) (0) | 2020.03.17 |
---|---|
16. 다운캐스팅과 instanceof (Java) (0) | 2020.03.17 |
13. 상속 (Java) (0) | 2020.03.16 |
12. ArrayList (Java) (0) | 2020.03.16 |
11. 객체 배열, 다차원 배열 (Java) (0) | 2020.03.15 |
댓글
최근에 올라온 글
최근에 달린 댓글
TAG
- chapter7
- 20200420
- 20200622
- 20200317
- 20200504
- 20200421
- 20200417
- 20200406
- 20200425
- likelion
- 20200502
- 20200427
- 20200403
- 20200512
- 20200319
- chapter8
- 생활코딩리눅스
- 20200503
- 20200413
- 20200804
- 백준
- 20200423
- 20200424
- 20200428
- 20200510
- 20200624
- 20200330
- 20201204
- 20200429
- 20200415
- Total
- Today
- Yesterday