2022. 11. 15. 15:42ㆍ책 공부/스프링 입문을 위한 자바 객체 지향의 원리와 이해
여러 관계에서 다형성에 대해 이야기할 수 있지만 그 중 가장 기본은
오버라이딩(Overriding) 과 오버로딩(Overloading)이다.
처음엔 오버라이딩과 오버로딩에 대해서 헷갈릴 수 있는 데 간단하게 단어의 뜻으로 외우면 된다.
ride : 올라타다
load : 적재하다
이삿짐을 예를 들면 이삿짐을 트럭에 실는 것을 위에서 아래로 내려다 봤을 때
위로 쌓아올렸을 때 ( = ride) 는 가장 마지막에 올린 짐만 보이지만
나란히 적재 했을 때( = load ) 는 모든 짐이 보인다.
그러면 어떤 것이 오버로딩인지 오버라이딩인지 맞춰보자
( 클릭하면 정답이 나온다!! )
- 같은 메서드 이름, 같은 인자 목록으로 상위 클래스의 메소드를 재정의
- 같은 메서드 이름, 다른 인자 목록으로 다수의 메서드를 중복 정의
이제 오버라이딩과 오버로딩을 구분할 수 있을 것이다. ( 믿어요,, )
이제 이것을 주의해야할 점과 같이 살펴보면서 다시 정리하면
오버로딩이란
클래스 내에 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름의 메소드를 정의할 수 있다.
여기서 꼭 알아두어야 하는 것은 메소드의 이름이 같으면서 매개변수의 개수 또는 타입이 달라야 한다는 것이다.
또 리턴값만 다르다면 오버라이딩 할 수 없다. 반드시 매개변수의 개수 또는 타입이 달라야 한다.
오버라이딩이란
상위 클래스로부터 상속받은 메소드를 하위 클래스에서 재정의하는 것이다.
여기서 꼭 알아두어야 할 것은 상위 클래스의 메소드를 재정의하는 것이므로, 오버라이딩하고자 하는 메소드의 이름, 매개변수, 리턴 값이 모두 같아야 한다.
'책 공부 > 스프링 입문을 위한 자바 객체 지향의 원리와 이해' 카테고리의 다른 글
자바가 확장한 객체 지향 (0) | 2022.11.15 |
---|---|
캡슐화: 정보 은닉 (0) | 2022.11.15 |
상속성 (0) | 2022.11.14 |
추상화 ( Abstracion ) (0) | 2022.11.14 |
객체 지향의 4대 특성 (0) | 2022.11.14 |