다형성

2022. 11. 15. 15:42책 공부/스프링 입문을 위한 자바 객체 지향의 원리와 이해

반응형
더보기

여러 관계에서 다형성에 대해 이야기할 수 있지만 그 중 가장 기본은 

오버라이딩(Overriding)오버로딩(Overloading)이다.

 

처음엔 오버라이딩과 오버로딩에 대해서 헷갈릴 수 있는 데 간단하게 단어의 뜻으로 외우면 된다.

 

ride : 올라타다

load : 적재하다

 

이삿짐을 예를 들면  이삿짐을 트럭에 실는 것을 위에서 아래로 내려다 봤을 때 

위로 쌓아올렸을 때 ( = ride) 는 가장 마지막에 올린 짐만 보이지만

나란히 적재 했을 때( = load ) 는 모든 짐이 보인다.

 

 

그러면 어떤 것이 오버로딩인지 오버라이딩인지 맞춰보자 

( 클릭하면 정답이 나온다!! )

 


- 같은 메서드 이름, 같은 인자 목록으로 상위 클래스의 메소드를 재정의

- 같은 메서드 이름, 다른 인자 목록으로 다수의 메서드를 중복 정의

 

이제 오버라이딩과 오버로딩을 구분할 수 있을 것이다. ( 믿어요,, )

 

이제 이것을 주의해야할 점과 같이 살펴보면서 다시 정리하면

 

 

오버로딩이란

 

클래스 내에 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름의 메소드를 정의할 수 있다.

여기서 꼭 알아두어야 하는 것은 메소드의 이름이 같으면서 매개변수의 개수 또는 타입이 달라야 한다는 것이다.

또 리턴값만 다르다면 오버라이딩 할 수 없다. 반드시 매개변수의 개수 또는 타입이 달라야 한다.

 

 

 

오버라이딩이란

 

상위 클래스로부터 상속받은 메소드를 하위 클래스에서 재정의하는 것이다.

여기서 꼭 알아두어야 할 것은 상위 클래스의 메소드를 재정의하는 것이므로, 오버라이딩하고자 하는 메소드의 이름, 매개변수, 리턴 값이 모두 같아야 한다.

 

반응형