본문 바로가기
Java

[Java] 메서드 재정의 / 오버라이딩 / overriding

by bkuk 2022. 9. 29.

메서드 오버라이딩(method overriding)란?

예를 들어, 상위 클래스viewParent() 라는 이름을 가진 메서드가 정의되어 있습니다.

하위 클래스에서도 viewParent() 라는 이름을 가진 메서드를 사용해야 하는데, 내용이 맞지 않을 경우

 

하위 클래스에서 이 메서드를 재정의할 수 있습니다. 이를 메서드 오버라이딩(method overriding)이라고 합니다.

 

오버라이딩의 조건은 반환형, 메서드 이름, 매개변수의 개수, 매개변수의 자료형이 반드시 같아야 합니다.

 

그렇지 않으면 자바 컴파일러는 재정의한 메서드를 기존 메서드와 다른 메서드로 판단합니다.

 


아래에서 상위 클래스와 이를 상속받는 하위 클래스로 구분합니다.

상위 클래스를 상속 받았으니,

상위 클래스의 변수와 메서드 호출은 문제 없이 가능합니다. 

 

 

그렇다면,

상위 클래스의 정의된 메소드하위 클래스에서 재정의를 하고 호출한다면?

 

상위 클래스의 메서드와 하위 클래스의 메서드가 같은 이름이지만,

하위 클래스이 메서드가 호출된 것을 통해 메서드 오버라이딩이 된 것을 확인할 수 있습니다.

 

 

그렇다면,

매개변수의 자료형을 다르게 정의한다면 어떻게 될까요?

 

상위 클래스의 메서드가 호출된 것을 확인했고,

메서드 오버라이딩이 되지 않았다는 결론을 내릴 수 있습니다.

댓글