강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

조민우님의 프로필 이미지
조민우

작성한 질문수

(2026) 일주일만에 합격하는 정보처리기사 실기

상속에 대해 오버라이딩에 대해

해결된 질문

작성

·

21

0

상속과 오버라이딩 차이가 햇깔리네요 영상 어디에 오버라이딩에 대한 영상이 있을까요

문제집도 풀고있는데 이해좀 할려는데.....

차이라기보다 문제 푸는 방식이 햇깔려요

상속은 영상제목에 있구요

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

안녕하세요 민우님!

딱 "오버라이딩"만 다룬 것은 없습니다.

오버라이딩이라는 것 자체가 부모에서 만든 메서드를 자식 클래스에서

재정의하는 것을 이야기하는 것이라서 상속과 같이 다루고 있습니다.

 

상속이라는 것 자체가.. 자식 클래스를 통해 나오는 메서드나

필드(변수들)을 부모에서 한 번 정의한 것들 손쉽게 재활용하기 위해서 하는 것입니다.

 

그래서 오버라이딩 자체가 상속의 한 부분이라고 보셔야 합니다.

오버라이딩은 부모 클래스에서 이미 정의된 메서드를 자식 클래스에서 재정의하는 것입니다.

핵심은 메서드의 메서드명 + 매개변수 목록이 동일해야 한다는 점입니다.

오버라이딩의 성립 조건은 다음과 같습니다.

  1. 메서드 이름이 같아야 한다

  2. 매개변수의 개수, 타입, 순서가 같아야 한다

  3. 리턴 타입이 같아야 한다 (공변 반환 타입 허용)

  4. 접근 제어자는 부모보다 같거나 넓어야 한다 (예: protectedpublic)

  5. 예외는 부모보다 같거나 좁은 범위만 선언할 수 있다

class Animal {
    void speak() {
        System.out.println("...");
    }
}

class Dog extends Animal {
    @Override
    void speak() {  // 시그니처가 완전히 동일 → 오버라이딩
        System.out.println("멍멍!");
    }
}

 

이것 외에는 특별히 기억하실 내용이 없습니다.

문제를 푸실 때 많이 헷갈리는 부분이 있으면 질문 부탁드립니다.

조민우님의 프로필 이미지
조민우
질문자

0

안녕하세요, 인프런 AI 인턴입니다. 조민우님.

오버라이딩과 상속은 객체 지향 프로그래밍의 핵심 개념이며, 문제를 풀이할 때 주로 사용되는 기술입니다. 이해하기에 도움을 줄 수 있는 내용을 요약해 드리겠습니다.

상속

상속은 기존 클래스(부모 클래스)가 가진 속성과 메서드를 새로운 클래스(자식 클래스)에게 물려주는 것을 의미합니다. 이를 통해 코드의 재사용성을 높일 수 있습니다.

오버라이딩(Overriding)

오버라이딩은 자식 클래스에서 부모 클래스의 메서드를 재정의하는 것을 의미합니다. 부모 클래스에 정의된 메서드와 동일한 이름, 매개변수를 가지면서 다른 기능을 구현할 수 있습니다.

오버라이딩의 특징:

  • 메서드 이름과 매개변수: 부모 클래스로부터 상속받은 메서드의 이름과 매개변수가 동일해야 합니다.
  • 다형성: 오버라이딩을 활용하면, 부모 클래스의 참조 변수를 통해 자식 클래스의 메서드를 호출할 수 있어 다형성을 구현할 수 있습니다.

문제 풀이에 있어서는 주로 다음 사항들을 확인하시면 됩니다:
- 메서드가 오버라이딩 되었는지 여부 확인
- 호출되는 메서드가 어떤 클래스에 의해 정의되었는지 확인

더 자세한 이해를 돕기 위해 다음과 같은 유사 질문과 답변을 참고하시면 좋겠습니다.

부족한 점이나 추가적인 설명이 필요하시면 언제든지 질문해 주세요. 질문자님의 이해를 돕기 위해 이 답변이 준비되었습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

조민우님의 프로필 이미지
조민우

작성한 질문수

질문하기