[JAVA]오버라이드

집 가고 싶다.·2024년 1월 3일

JAVA

목록 보기
21/33
post-thumbnail

오버라이드(Override)

1. super 키워드

  • 부모 클래스를 가리키는 예약어.
  • 멤버변수 앞에 사용: 부모 클래스의 멤버변수 의미 (잘 사용하지 않음).
  • 메서드 앞에 사용:
    • 재정의되지 않은 메서드: this 키워드와 동일한 결과.
    • 재정의된 메서드: 부모의 원본 메서드 의미.
  • 키워드 자체를 메서드처럼 사용: super(); - 부모 클래스의 생성자 의미.

2. 상속관계에서의 생성자 처리

  • 생성자는 상속되지 않음.
  • 생성자가 정의된 클래스를 상속받으면 파라미터를 전달받아야 함.
  • 부모 생성자 강제 호출: super() 키워드 사용.

3. @Override 옵션

  • 메서드 재정의 시 오타 방지.
  • @Override 어노테이션 사용.
  • 부모 클래스의 메서드가 없으면 구문 에러 처리.
  • 여러 메서드 재정의 시 각각 명시 필요.

상속에서 오버라이드를 통해 부모 클래스의 메서드를 자식 클래스에서 재정의하여 사용할 수 있으며, 오타 방지를 위해 @Override 어노테이션을 사용한다.

오버라이드 예시

// Animal 클래스 정의
class Animal {
    // 동물 소리 메서드
    public void sound() {
        System.out.println("Animal makes a sound");
    }
}

// Dog 클래스, Animal을 상속받음
class Dog extends Animal {
    // Animal 클래스의 sound 메서드 오버라이드
    @Override
    public void sound() {
        System.out.println("Dog barks");
    }
}

// 메인 클래스
public class OverridingExample {
    public static void main(String[] args) {
        // Animal 객체에 Dog 할당
        Animal animal = new Dog();
        
        // Dog의 bark() 메서드 호출
        animal.sound();
    }
}
profile
틀린거 있으면 알려주세요.

0개의 댓글