강의

멘토링

로드맵

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

dhkdxo12님의 프로필 이미지
dhkdxo12

작성한 질문수

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

상속과 생성자 호출순서

오버로딩과 오버라이드 차이

해결된 질문

작성

·

18

0

상속과 생성자 호출 순서

오버로딩과 오버라이드 차이가 뭔지 간략하게 설명부탁드립니다.

답변 2

0

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

안녕하세요, 각 용어의 정의와 쉽게 외우는 방법을 말씀 드려보겠습니다.

 

  1. 오버로딩(Overloading) : 같은 이름의 생성자나 메서드가 있어도 파라미터의 종류와 갯수에 따라서 여러 기능을 따로 가지게 하는 것 

  2. 오버라이딩(Overriding) : 같은 메서드인데, 자식이 재정의해서 자체적으로 부모와 다른 다른 기능을 하는 것

각각의 정의는 이렇고, 외우는 것은 용어 자체로 외우시면 됩니다.

 

loading은 짐을 싣는다는 것입니다. 혹시 스타크래프트라는 게임을 아시면, 거기에도 오버로드라는 개체가 나오죠. 같은 이름의 메서드가 소스코드에 많이 실려있다고 생각하시면 됩니다.

 

riding은 무언가를 타고 올라가거나 덮어쓴다는 의미입니다. 그래서 부모 클래스에 있는 기능을 자식이 덮어쓰는 것입니다.

 

용어로 외우시는 것이 더 확실하게 기억하기에는 좋습니다.

 

두 가지 용어는 아예 다른 개념입니다. 그런데 시험에서 용어 자체를 물어보는 것은 아직 본 적이 없습니다. 나온다면 키워드형 주관식으로나 나오지 않을까 싶네요.

 

질문하신 것과 상관없이 정보를 더 드리자면

현실에서 Java 개발을 할 때는 에디터가 자동으로 @Override 라는 표시를 남겨줍니다.

그런데 저 단어가 없어도 이름과 파라미터가 같으면 알아서 오버라이드가 되기 때문에 시험에서는 저 표시가 등장하지 않습니다. 그래서 개념 자체를 잘 외워가시는 것이 중요합니다.

0

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

오버로딩(Overloading)과 오버라이드(Overriding)는 객체 지향 프로그래밍에서 메서드의 다양성을 제공하는 두 가지 중요한 개념입니다. 이 둘을 비교해서 설명드리겠습니다.

오버로딩(Overloading)

오버로딩은 같은 이름의 메서드를 여러 개 정의하되, 매개변수의 개수나 타입을 다르게 설정하여 사용합니다. 즉, 하나의 클래스 내에서 동일한 이름을 가진 메서드를 여러 개 정의할 때 오버로딩을 사용합니다. 컴파일러는 전달된 인수에 맞는 적절한 메서드를 호출합니다.

예제:

class Addition {
    int add(int a, int b) {
        return a + b;
    }

    double add(double a, double b) {
        return a + b;
    }
}

오버라이드(Overriding)

오버라이드는 부모 클래스에 정의된 메서드를 자식 클래스가 재정의 하는 것을 의미합니다. 두 메서드는 동일한 메서드 서명을 가져야하며, 자식 클래스에서 해당 메서드를 호출할 때 재정의된 자식 메서드가 실행됩니다. 이를 통해 다형성을 구현할 수 있습니다.

예제:

class Parent {
    void display() {
        System.out.println("Parent Display");
    }
}

class Child extends Parent {
    @Override
    void display() {
        System.out.println("Child Display");
    }
}

차이점 요약

  • 오버로딩은 한 클래스 내에서 같은 이름의 메서드를 여러 방식으로 사용할 때 사용되며, 메서드의 서명(파라미터 리스트)이 달라야 합니다.
  • 오버라이드는 상속 관계에서 부모 클래스의 메서드를 자식 클래스에서 재정의하며, 메서드의 서명은 동일해야 합니다.

이 외에도 이미 다루어진 유사한 주제가 있어 참고하실 관련 링크도 함께 드리겠습니다:

  1. 오버라이드와 다형성에 대한 질문 - 객체의 상속과 메서드의 오버라이딩에 대한 설명을 포함합니다.

추가적으로 궁금한 점이 있으시면, 자유롭게 질문해 주세요. 곧 담당 강사님께서 더 상세한 답변을 드리실 것입니다.

저는 질문자님의 이해를 돕고자 기존의 답변을 기반으로 유사한 유형의 질문 링크를 추천드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

dhkdxo12님의 프로필 이미지
dhkdxo12

작성한 질문수

질문하기