[내배캠] 면접 질문 모음 18~19

Sungchan Ahn(안성찬)·2024년 12월 16일

내일배움캠프

목록 보기
82/104
  1. 클래스를 다른 클래스로 상속하기 위한 방법은 무엇인가요?

    C#에서는 클래스 단일 상속만 가능하다. 클래스 내에서 private으로 선언된 멤버는 상속 받은 클래스에서도 접근할 수 없기 때문에 상속할 멤버는 public이나 protected로 선언해야 한다. 재정의가 필요한 메서드는 virtual이나 abstract 키워드를 사용한다.

  1. 클래스 상속에서 다이아몬드 문제(diamond problem)가 발생하는 이유와 이를 해결하는 방법에 대해 설명해주세요.

    클래스 A를 상속 받은 클래스 B와 C를 클래스 D가 다중 상속 받을 때 다이아몬드 문제가 발생한다. D에서는 B가 상속받은 A와 C가 상속받은 A가 같은 A가 아니기 때문에 D에서 A로부터 상속 받은 멤버에 접근할 때 B와 C 둘 중 어느 클래스의 멤버를 호출할 지 모호해진다.
    C#에서는 다중 상속을 지원하지 않고 단일 상속만 가능하기 때문에 다이아몬드 문제를 방지할 수 있다. 인터페이스를 통해 다중 상속과 유사한 효과를 얻을 수 있다.
    다이아몬드 문제 : 다중 상속에서 발생할 수 있는 문제. 최상위 클래스에서 시작하여 두 개의 서브 클래스로 분기되고, 이 두 서브 클래스를 다시 하나의 클래스가 상속받는 다이아몬드의 구조로 다중 상속을 받았을 때 발생. 호출의 모호함이 발생

profile
게임 개발 기록

0개의 댓글