면접 질문 /클래스를 다른 클래스로 상속하기 위한 방법은 무엇인가요? / 클래스 상속에서 다이아몬드 문제(diamond problem)가 발생하는 이유와 이를 해결하는 방법에 대해 설명해주세요. / 인터페이스란 무엇인가요? / 인터페이스와 추상클래스의 차이는 무엇인가요?

2024. 12. 19. 21:54카테고리 없음

질문 : 클래스를 다른 클래스로 상속하기 위한 방법은 무엇인가요?

- 클래스를 다른 클래스로 상속하려면 : 연산자를 사용하여 부모 클래스를 지정하면 됩니다./ 상속받는 자식 클래스는 부모 클래스의 멤버(필드, 속성, 메서드)를 사용할 수 있으며, 필요에 따라 멤버를 재정의할 수도 있습니다.

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

- 다이아몬드 문제는 다중 상속 시 두 부모 클래스가 같은 조상 클래스를 상속받고 자식 클래스가 이를 모두 상속받으면서 조상 클래스의 멤버를 호출할 때 어떤 경로로 상속된 멤버인지 모호성이 발생하는 문제로, 이를 해결하기 위해 다중 상속을 금지하고 인터페이스를 통해 문제를 예방하면 됩니다.

질문 : 인터페이스란 무엇인가요?

- 인터페이스는 클래스나 구조체가 특정 기능을 구현하도록 강제하는 설계 도구로, 메서드나 속성의 이름과 형태 만 정의하고 구현은 해당 인터페이스를 상속받는 클래스에서 작성하며, 다중 상속이 불가능한 언어(C#, Java)에서도 다중 구현을 가능하게 하고 코드의 유연성과 확장성을 높이는 데 사용됩니다. 다중상속이 가능하다.

질문 : 인터페이스와 추상클래스의 차이는 무엇인가요?

- 인터페이스와 추상 클래스의 주요 차이는, 인터페이스는 구현이 없는 메서드의 선언만 포함하며 다중 구현이 가능하지만, 추상 클래스는 추상 메서드와 함께 일반 메서드도 포함할 수 있고 단일 상속만 가능하다는 점입니다./ 또한, 인터페이스는 객체의 동작을 정의하는 데 사용되고, 추상 클래스는 객체의 공통 속성과 동작을 공유하는 데 사용됩니다.