로그인 회원가입
모두인포
전체IT경제사회생활스포츠시사여행연애

자바 Overriding(오버라이딩)

lmkfox · 2025-07-16 · 조회 0
자바 Overriding(오버라이딩)
오버라이딩이란? - 오버라이딩(Overriding)은 상속받은 메서드를 자식 클래스에서 같은 이름, 같은 매개변수, 같은 반환 타입으로 다시 정의하는 것입니다. - 자식 클래스는 부모 클래스의 기본 동작을 변경하거나 확장할 수 있습니다. 오버라이딩의 문법 @Override public 반환타입 메서드이름(매개변수목록) { // 새로운 구현 내용 } - @Override 어노테이션은 컴파일러에게 오버라이딩을 명시적으로 알려주는 역할을 합니다. - 어노테이션을 생략해도 작동하지만, 붙이는 것이 일반적으로 권장됩니다. 실수로 메서드 시그니처가 달라질 경우 오류를 바로 알 수 있기 때문입니다. 예제 코드 class Animal { void sound() { System.out.println("동물이 소리를 냅니다."); } } class Dog extends Animal { @Override void sound() { System.out.println("강아지가 멍멍 짖습니다."); } } public class Main { public static void main(String[] args) { Animal a = new Dog(); a.sound(); // 출력: 강아지가 멍멍 짖습니다. } } - Dog 클래스는 Animal 클래스의 sound() 메서드를 오버라이딩했습니다. - Animal a = new Dog(); 형태는 업캐스팅이 적용된 형태이며, 실행 시에는 Dog 클래스의 sound()가 호출됩니다. 이것이 다형성입니다. 오버라이딩 조건 정리 조건 설명 메서드 이름 부모 클래스와 동일해야 함 매개변수 리스트 부모 클래스와 정확히 일치해야 함 반환 타입 부모 클래스와 같거나 더 좁은 범위(covariant) 접근 제어자 부모보다 좁아질 수 없음 (동일하거나 더 넓어야 함) 예외 처리 부모가 던지는 예외보다 같거나 더 적은 예외를 던져야 함 오버라이딩과 오버로딩의 차이 구분 오버라이딩(Overriding) 오버로딩(Overloading) 정의 상속 관계에서 메서드 재정의 같은 클래스 내에서 메서드 이름 재사용 시그니처 동일해야 함 매개변수 개수 또는 타입이 달라야 함 목적 부모 클래스의 기능 수정 다양한 인자에 대응하는 유연성 제공 왜 오버라이딩을 사용하는가? - 다형성 구현 - 상위 타입으로 선언된 객체가 실제로는 하위 클래스의 메서드를 실행할 수 있게 함. - 기능 확장 - 기본 기능을 자식 클래스에 맞게 재정의하여 더 유용하게 사용 가능. - 공통 인터페이스 사용 가능 - 인터페이스나 추상 클래스에서 정의한 메서드를 자식 클래스에서 구체화할 수 있음.

댓글

아직 댓글이 없습니다.

로그인 후 댓글을 남길 수 있습니다.