Java/Study

Overriding ( 오버라이딩 )

hyunjg94 2025. 3. 6. 00:34

오버라이딩(Overriding)객체 지향 프로그래밍에서 하위 클래스가 상위 클래스의 메서드를 재정의하는 것을 의미합니다. 오버라이딩을 통해 하위 클래스는 상위 클래스의 메서드를 자신의 필요에 맞게 변경할 수 있습니다.

오버라이딩의 특징

  1. 메서드 이름, 매개변수, 반환 타입이 동일해야 함: 하위 클래스에서 재정의하는 메서드는 상위 클래스의 메서드와 동일한 이름, 매개변수, 반환 타입을 가져야 합니다.
  2. @Override는 Java에서 메서드 오버라이딩을 명시적으로 표시하는 어노테이션입니다. 이 어노테이션을 사용하면, 부모 클래스 또는 인터페이스의 메서드를 하위 클래스에서 재정의하고 있음을 컴파일러에게 알립니다.
    1. 컴파일러 검사:
      • @Override 어노테이션을 사용하면, 컴파일러가 메서드 시그니처가 부모 클래스 또는 인터페이스의 메서드와 일치하는지 확인합니다.
      • 만약 일치하지 않으면 컴파일 오류를 발생시켜, 실수를 방지할 수 있습니다.
    2. 가독성 향상:
      • 코드의 가독성을 높여줍니다. 다른 개발자들이 코드를 읽을 때, 해당 메서드가 부모 클래스 또는 인터페이스의 메서드를 재정의하고 있음을 쉽게 알 수 있습니다.

예제 1

다음은 상위 클래스와 하위 클래스에서 메서드를 오버라이딩하는 예제입니다:

// 상위 클래스
public class Animal {
    public void makeSound() {
        System.out.println("Some sound");
    }
}

// 하위 클래스
public class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Bark");
    }
}

설명

  • 상위 클래스 Animal: makeSound 메서드를 정의합니다.
  • 하위 클래스 Dog: Animal 클래스를 상속받아 makeSound 메서드를 오버라이딩합니다.

오버라이딩을 통해 하위 클래스는 상위 클래스의 기본 동작을 변경하거나 확장할 수 있습니다.

위 예제에서 Dog 클래스는 Animal 클래스의 makeSound 메서드를 재정의하고 있습니다. @Override 어노테이션을 사용하여 이를 명시적으로 표시합니다.

요약

  • @Override 어노테이션: 메서드 오버라이딩을 명시적으로 표시합니다.
  • 컴파일러 검사: 메서드 시그니처가 부모 클래스 또는 인터페이스의 메서드와 일치하는지 확인합니다.
  • 가독성 향상: 코드의 가독성을 높여줍니다.

 

'Java > Study' 카테고리의 다른 글

부모(Parent) 클래스, 자식(Child) 클래스  (0) 2025.03.06
abstract  (0) 2025.03.06
Enum  (1) 2025.03.04
컬렉션 프레임워크  (0) 2025.03.03
finally  (0) 2025.03.03