몬그로이

이름이 동일한 method? 본문

Dev 언어 정리 & Self QnA/Java

이름이 동일한 method?

Mon Groy 2024. 4. 25. 06:00

클래스는 부모-자식 관계가 존재한다

부모클래스는 자식에게 method를 상속해주고

자식클래스는 부모에게서 method를 상속받는다

 

그렇기 때문에 자식클래스는 부모의 메서드를 모두 가진채로 추가적 메서드를 갖는데,

일부는 부모의 메서드를 덮어쓰기 하는 경우가 있다

이를 overriding이라고 한다

 

overriding은 보통 부모 클래스의 메서드가 '개선'이 필요할 때

 메서드이름은 동일하지만 기능은 개선된 메서드를 자식 클래스에 넣은 경우이다

 

일반적으로

자식 클래스를 사용 중에 메서드A를 사용한 경우

메서드A가 자식클래스의 메서드들 중에 속해있든 부모에 속해있든 상관없이 작동한다

 

물론, 이는 일반적인 경우이므로

부모-자식 클래스 내에 overriding 상태가 없는 메서드들로만 이루어져 있을 때의 이야기이다

 

메서드A가 overriding을 한 경우라면

자식 클래스 사용중에는 자식 클래스에 속한 메서드A(개선본)가 작동할 것이고

부모 클래스 사용중에는 부모 클래스에 속한 메서드A(원본)가 작동할 것이다

 

추가로

서로 상속되지 않은 클래스라도 메서드 이름이 동일한 경우도 있다는 것도 잊지 말자