[TIL #26] 함수 오버로딩의 함정

2024. 10. 18. 23:50·Camp/T.I.L.

정처기 실기 문제엔 다음과 같은 유형의 프로그래밍 문제가 나온다.

 

// 다음 프로그램의 실행 순서가 어떻게 되는지 맞춰라!
// 5 -> ...

class Parent {
    int x, y;

    Parent(int x, int y) { // 1
        this.x = x;
        this.y = y;
    }

    int getT() { // 2
        return x * y;
    }
}

class Child extends Parent {
    int x;

    Child(int x) { // 3
        super(x + 1, x);
        this.x = x;
    }

    int getT(int n) { // 4
        return super.getT() + n;
    }
}

class Main {
    public static void main(String[] args) { // 5
        Parent parent = new Child(3); // 6
        System.out.println(parent.getT()); // 7
    }
}

항상 이런 오버로딩/오버라이딩 관련 문제로 수험자들을 낚으려고 한다.

답은 ``5 -> 6 -> 3 -> 1 -> 7 -> 2``가 된다.

 

``Parent``에 있는 ``get()``가 ``Child``에서 ``getT(int n)``으로 오버로딩 됐기 때문이다.

같은 ``getT``라는 이름을 가지지만 받는 파라미터의 수가 다르다.

그래서 별개의 함수로 취급이 된다.

 

나도 별 생각이 없었다가 실기를 준비하다 보니 아차 싶었던 부분이다.

학교에서도 나름 힘주면서 교수님이 설명했었던 개념이기도 했다.

모의고사에서 한두번 정도 낚여준 것 같다...

 

함수 내부가 재정의 되는 것은 물론이고 파라미터도 중요한 점이기 때문에,

이런 문제에 절대 낚여선 안 되겠다.

'Camp > T.I.L.' 카테고리의 다른 글

[TIL #28] Investments in 2016  (0) 2024.10.23
[TIL #27] 호텔 대실  (0) 2024.10.21
[TIL #25] 전력망을 둘로 나누기  (0) 2024.10.16
[TIL #24] 행렬 테두리 회전하기  (0) 2024.10.14
[TIL #23] Product Price at a Given Date  (0) 2024.10.10
'Camp/T.I.L.' 카테고리의 다른 글
  • [TIL #28] Investments in 2016
  • [TIL #27] 호텔 대실
  • [TIL #25] 전력망을 둘로 나누기
  • [TIL #24] 행렬 테두리 회전하기
BVM
BVM
  • BVM
    E:\
    BVM
  • 전체
    오늘
    어제
    • 분류 전체보기 (168)
      • Thoughts (14)
      • Study (69)
        • Japanese (3)
        • C++ & C# (46)
        • Javascript (3)
        • Python (14)
        • Others (3)
      • Play (1)
        • Battlefield (1)
      • Others (11)
      • Camp (73)
        • T.I.L. (57)
        • Temp (1)
        • Standard (10)
        • Challenge (3)
        • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • 본 블로그 개설의 목적
  • 인기 글

  • 태그

    IOCP
    discord py
    docker
    FF14
    Selenium
    로깅
    Server
    bot
    Python
    네트워크 프로그래밍
    스타필드
    db
    boost
    클라우드
    7계층
    프로그래머스
    Asio
    암호화
    c#
    Dalamud
    C++
    OSI
    네트워크
    discord
    JS
    베데스다
    cloudtype
    Network
    포인터
    서버
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
BVM
[TIL #26] 함수 오버로딩의 함정
상단으로

티스토리툴바