티스토리 뷰

Goal

 - 오버라이딩에 대해 이해한다.

 - 애노테이션에 대해 이해한다.

 - 형 변환시 오버라이딩 메서드 호출에 대해 이해한다.

 - 가상 메서드의 개념에 대해 이해한다.

 

1. 오버라이딩 (overriding)

 - 상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우, 하위 클래스에서 동일한 이름의 메서드를 재정의 할 수 있음.

 

2. @override 애노테이션(Annotation)

 - 재정의된 메서드라는 의미로 선언부가 기존의 메서드와 다른 경우 에러 발생

 - Annotation은 컴파일러에게 특정한 정보를 제공해주는 역할을 함.

 

Java의 몇 가지 애노테이션들

3. 형 변환과 오버라이딩 메서드 호출 

Customer vc = new VIPCustomer();
vc.calcPrice(10000);

 - 위 코드에서 calcPrice() 메서드는 어느 데이터타입의 메서드가 호출 될 것인가?

 - 자바에서는 항상 인스턴스 (여기서는 VIPCustomer)의 메서드가 호출 됨 (가상 함수)

4. 가상 메서드(virtual method)

 - 메서드의 이름과 메서드의 주소를 가진 가상 메서드 테이블에서 호출될 메서드의 주소를 참조함.

 - 메서드의 이름은 컴파일이 되면 주소가 됨. 따라서 같은 메서드의 이름(주소)은 존재하지 않음. 

 - 가상함수 어드레스 매핑에 의해 재정의된 메서드가 호출됨.

 

댓글