본문 바로가기

DEVELOPER/Java

오버라이딩(Overriding)

반응형

오버라이딩(Overriding)


상속받은 하위 클래스에서 메서드 재정의 하기

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

 


전 상속 내용에서 봤던 예제를 보면..

Customer클래스에는 calcPrice( )[할인율] 메서드가 선언되어있지만, VIPCustomer 클래스에는 적용 X


재정의 구현 예제

@Override
public int calcPrice(int price) {
	bonusPoint += price * bonusRatio;
	return price - (int)(price * salesRatio);
}

 


@overriding 애노테이션 (annotation)


annotation은 spring에서 많이 사용된다.

· 애노테이션은 원래 주석이라는 의미

· 컴파일러에게 특별한 정보를 제공해주는 역할

Annotation

 

 

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

(앞 예제) Customer vc = new VIPCustomer( );

vc 변수의 타입은 Customer지만 인스턴스의 타입은 VIPCustomer 

자바에서는 항상 인스턴스의 메서드가 호출됨(가상 메서드의 원리)

자바의 모든 메서드는 가상 메서드(virtual method) 임

c++에서는 가상 메서드임을 나타내기 위해 virtual을 명시해줘야 한다.

반응형

'DEVELOPER > Java' 카테고리의 다른 글

추상 클래스(abstract class)  (0) 2021.04.26
다운 캐스팅과 instanceof  (0) 2021.04.26
객체 간의 상속  (0) 2021.04.24
객체 배열을 구현한 클래스 ArrayList  (0) 2021.04.23
2차원 배열  (0) 2021.04.23