[Java] 자바에서 오버로드와 오버라이드
자바에서 오버로드와 오버라이드
자바의 중요한 개념인 오버로드(Overload)와 오버라이드(Override)에 대해, 이 두 개념은 객체 지향 프로그래밍에서 자주 등장하는 개념으로, 메서드의 재사용성과 다형성을 구현하는 데 중요한 역할을 한다. 그럼, 오버로드와 오버라이드의 차이점과 예시를 통해 살펴보겠다
오버로드 (Overloading)
오버로드는 동일한 이름을 가진 메서드를 여러 개 정의하되, 매개변수의 타입, 수, 순서가 다르게 정의하는 것을 의미한다.
특징:
- 매개변수의 타입, 수, 순서가 다르다.
- 반환 타입은 오버로드에 영향을 미치지 않는다.
- 동일한 클래스 내에 존재하거나 상속받은 클래스 내에 존재할 수 있다.
예시:
위의 예제에서 Calculator 클래스는 세 가지 add 메서드를 정의하고 있으며, 각 메서드는 매개변수의 타입이나 수가 다르다.
오버라이드 (Overriding)
오버라이드는 상위 클래스에 정의된 메서드를 하위 클래스에서 동일한 매개변수와 반환 타입으로 재정의하는 것을 의미한다.
특징:
- 매개변수와 반환 타입이 동일하다.
- 하위 클래스에서 상위 클래스의 메서드를 덮어쓴다.
- @Override 애노테이션을 사용하여 컴파일러에게 재정의 의도를 명확히 할 수 있다.
예시:
위의 예제에서 Dog 클래스는 Animal 클래스의 sound 메서드를 동일한 시그니처로 재정의하고 있으며, super 키워드를 사용하여 상위 클래스의 sound 메서드를 호출한 후 추가 동작을 정의한다.
오버로드와 오버라이드 사용 예시
오버로드 사용하는 경우:
- 동일한 동작을 수행하지만 매개변수가 다른 여러 형태의 메서드를 정의할 때 사용한다.
- 예를 들어, 다양한 데이터 타입을 처리하는 add 메서드를 정의할 때 사용한다.
오버라이드 사용하는 경우:
- 상위 클래스의 기본 메서드 동작을 하위 클래스에서 변경하고 싶을 때 사용한다.
- 예를 들어, 동물 소리를 내는 sound 메서드를 각 동물 클래스에서 구체화할 때 사용한다.
오버로드와 오버라이드는 자바에서 메서드의 재사용성과 다형성을 구현하는 중요한 개념이다. 오버로드는 매개변수를 다르게 하여 같은 이름의 메서드를 여러 개 정의하는 것이고, 오버라이드는 상위 클래스의 메서드를 하위 클래스에서 동일한 시그니처로 재정의하는 것이다. 이 두 개념을 잘 이해하고 사용하면 더 유연하고 유지보수하기 쉬운 코드를 작성할 수 있다고한다
'낙서장[1] > 91. Java' 카테고리의 다른 글
[Java] 우분투22.04에서 자바 한글 출력 (1) | 2025.03.23 |
---|---|
[Java] 자바 synchronized (멀티스레드/동기화) (0) | 2025.03.22 |
[Java] 자바기초, (멤버, 생성자 등) (0) | 2025.02.02 |
[Java] 자바 접근 지정자 이해하기 (0) | 2025.02.02 |
[Java] 자바로 개인정보 숨김 처리하기 (0) | 2025.01.30 |