• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

2.2.2 상속으로 깔끔하게 init 메서드 질문

21.08.11 12:12 작성 조회수 129

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
부모 클래이스의 init 과 자식클래스의 init 이 각각 있는데
Triangle 객체에서 init 메서드를 호출해주면 부모 클래스의 init 메서드를 호출하지 않고 Triangle 의 init 메서드를 호출하는 이유가
함수 파라미터가 다르기 때문이 맞나요?
override 키워드를 붙이는 경우는 함수 오버라이드를 하는 경우에 사용을 하고 init 메서드들 같은 경우는 함수 오버로딩이라고 판단하는게 맞는지 궁금합니다.

답변 1

답변을 작성해보세요.

0

안소님의 프로필

안소

2021.08.11

안녕하세요 :)

맞습니다. Triangle 은 부모인 GeometricObject 로부터 받은 init 과 본인 클래스에서 정의한 init 함수를 갖고 있는데 두 함수는 이름만 같을 뿐 다른 함수입니다. 매개변수 개수가 다르기 떄문입니다. 즉, 오버로딩을 통해 구분될 수 있는 경우죠!  

tri 는 파라미터 3개짜리 init 을 호출하고 있기에 이와 일치한 Triangle 에서 정의한 init 이 호출되게 됩니다. 만약 2 개짜리 init 을 호출됐다면 상속받아 가지고 잇는 그 init 을 호출하겠습니다. 

(추가로, 질문이 비롯된 코드가 등장하는 시간대를 말씀해주시면 제가 답변 드리는데에 도움이 됩니다. 질문 주실 땐 구체적인 시간대 남겨주시면 감사하겠습니다.)