Java/Java 올인원 패키지
14. 메서드 오버라이딩 (Java)
GrapeMilk
2020. 3. 17. 00:45
Goal
- 오버라이딩에 대해 이해한다.
- 애노테이션에 대해 이해한다.
- 형 변환시 오버라이딩 메서드 호출에 대해 이해한다.
- 가상 메서드의 개념에 대해 이해한다.
1. 오버라이딩 (overriding)
- 상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우, 하위 클래스에서 동일한 이름의 메서드를 재정의 할 수 있음.
2. @override 애노테이션(Annotation)
- 재정의된 메서드라는 의미로 선언부가 기존의 메서드와 다른 경우 에러 발생
- Annotation은 컴파일러에게 특정한 정보를 제공해주는 역할을 함.
3. 형 변환과 오버라이딩 메서드 호출
Customer vc = new VIPCustomer();
vc.calcPrice(10000);
- 위 코드에서 calcPrice() 메서드는 어느 데이터타입의 메서드가 호출 될 것인가?
- 자바에서는 항상 인스턴스 (여기서는 VIPCustomer)의 메서드가 호출 됨 (가상 함수)
4. 가상 메서드(virtual method)
- 메서드의 이름과 메서드의 주소를 가진 가상 메서드 테이블에서 호출될 메서드의 주소를 참조함.
- 메서드의 이름은 컴파일이 되면 주소가 됨. 따라서 같은 메서드의 이름(주소)은 존재하지 않음.
- 가상함수 어드레스 매핑에 의해 재정의된 메서드가 호출됨.