inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

(기출) 2025년 2회 코드문제-1

메서드 오버라이드

해결된 질문

86

jongbin7245

작성한 질문수 17

0

2025년 2회 코드문제 -1

11:40

이해 안되는게 있는데

자식에서 재정의 하면 자식에서 실행되어야 하는거 아닌가요? 순수 부모여서그런건가요?

또한 만약 Parent ref= new 자식이였다면

4P가 되는건가요? 스테틱이면 부모꺼 출력으로 알고 있어서 혹시 제가 잘못 알고 있는부분있으면 추가적으로 알려주세요 ㅜ

java 정보처리기사

답변 2

0

주말코딩

안녕하세요,

네 순수 부모인 경우 부모 필드만 보셔야 합니다.

자식 것으로 되어있으면 인스턴스 메서드 같은 경우 자식 메서드를 실행해야 합니다.

부모에서 static인 경우에는 상속되지 않기 때문에 앞에 타입이 Parent이면 하이딩 처리가 되어 부모 것을 실행하셔야 합니다.

 

public class Main {
    public static void main(String[] args) {
        Parent ref = new Child();
        System.out.println(ref.x(2) + ref.id());
    }
}

class Parent {
    public int x(int i) {
        return i + 3;
    }
    public static String id() {
        return "P";
    }
}

class Child extends Parent {
    public int x(int i) {
        return i + 2;
    }
    public static String id() {
        return "C";
    }
}

 

출력문: 4P

 

0

인프런 AI 인턴

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

자바에서 메서드 오버라이딩(Overriding)과 관련하여 혼란스러울 수 있는 부분에 대한 설명을 드리겠습니다.

메서드 오버라이딩

  • 오버라이딩은 자식 클래스에서 부모 클래스의 메서드를 재정의하는 것입니다. 이때, 실제 객체의 타입에 따라 오버라이딩된 메서드가 실행됩니다.
  • 즉, Parent ref = new 자식(); 구조일 경우, ref가 자식 객체를 참조하고 있으므로, 자식 클래스의 오버라이딩된 메서드가 실행됩니다.

정적 메서드 및 변수

  • 정적(static) 메서드정적 변수는 클래스 소속이므로, 오버라이딩이라는 개념이 적용되지 않습니다. 따라서 참조 타입의 클래스에 정의된 메서드나 변수가 호출됩니다.
  • 만약 Parent ref = new 자식();인 상황에서 정적 메서드나 변수를 호출하면, 부모 클래스의 것이 호출됩니다.

관련 예시

class Parent {
    static int x = 2;
    int y = 3;
    
    static void printStatic() {
        System.out.println("Parent static method");
    }

    void print() {
        System.out.println("Parent instance method");
    }
}

class Child extends Parent {
    static int x = 4;
    int y = 5;
    
    static void printStatic() {
        System.out.println("Child static method");
    }

    @Override
    void print() {
        System.out.println("Child instance method");
    }
}

public class Test {
    public static void main(String[] args) {
        Parent ref = new Child();
        
        // 정적 변수와 메서드
        System.out.println(ref.x); // 2 출력
        ref.printStatic(); // "Parent static method" 출력
        
        // 인스턴스 메서드
        ref.print(); // "Child instance method" 출력
    }
}

여기서 보듯이, ref.print();는 “Child instance method”를 출력하지만, 정적 변수나 메서드는 Parent 클래스의 것이 호출됩니다.

자바의 이 특성은 객체 지향 프로그래밍에서 다형성을 구현하는 데 중요한 요소입니다. 필요에 따라 인스턴스 변수와 정적 변수/메서드의 동작 차이를 염두에 두시길 바랍니다.

관련 토론이나 추가 설명이 필요하다면, 다음 링크들을 참고해 보시면 도움이 될 것입니다:

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

정처기 26-2회. 9번 질문드립니다!

0

36

1

이론 보면서 질문이 있습니다.

0

39

2

정보처리기사 실기 26년 2회 SRT 스케줄링 문제 단위 질문

0

49

2

유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)

0

71

2

262 정처기 실기 C언어코딩

0

29

1

정보처리기사 262 실기 Hash(해시) 질문

0

58

2

static 변수 질문입니다.

0

46

2

파이썬 4강 질문입니다.

0

52

2

모의고사 1회 3번문제

0

75

3

41강 30:10

0

51

2

이론 공부법 질문 있습니다.

0

74

2

부모의 생성자 관련 질문

0

53

2

시험지 문제에 필기해도 되나요?

0

61

3

41강 11:23

0

47

2

4강파이썬 질문입니다

0

46

2

try-catch 핸들러명

0

55

2

36강 3:48

0

57

2

35강 18:27

0

52

2

자식 코드 내 super() 생략

0

51

2

출력질문

0

67

2

31강 4:06

0

57

2

파이썬 학습자료가 강의 자료와 다릅니다.

0

84

3

섹션 2 - 9강 강의자료 다운로드 문제

0

69

3

29강 3:09

0

52

2