Deff_Dev

[C#] 상속과 인터페이스 본문

면접 질문 정리/C#

[C#] 상속과 인터페이스

Deff_a 2024. 7. 5. 10:05

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

public class C 
{

}
public class D : C // 상속
{
    
}
  • 클래스를 선언할 때, 클래스 이름 옆에 : 상속 받을 클래스 이름 작성하면된다.

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

https://velog.io/@soongle/c-%EB%8B%A4%EC%9D%B4%EC%95%84%EB%AA%AC%EB%93%9C-%EC%83%81%EC%86%8Ddiamond-inheritance

  • 다이아몬드 문제는 두 개의 다른 하위 클래스가 동일한 상위 클래스를 상속받고, 이를 다시 다중 상속받는 클래스에서 발생한다. 이러한 구조로 인해 다중 상속을 받는 클래스는 동일한 상위 클래스의 인스턴스를 두 번 상속받게 되어, 메서드 호출이나 속성 참조 시 어떤 경로를 통해 상속받은 것인지 모호해진다.
  • C#, Java은 다중 상속을 지원하지 않고 단일 상속만 지원하여 다이아몬드 문제를 해결하고 인터페이스는 다중 상속을 지원하여 다중 상속의 유연성을 제공한다.
 

[Unity/C#] 정보 은닉, 캡슐화, 상속 (base 연산자)

해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 정보은닉 클래스 외부에서 클래스의 멤버 변수에 직접 접근하지 못하도록 멤

deff-dev.tistory.com

 

[Unity/C#] 다형성 (업 캐스팅, 메소드 오버라이딩, is/as 연산자)

해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 다형성 객체가 여러 가지 다양한 형태를 가지는 것을 뜻한다. → 상속을 받는

deff-dev.tistory.com

 

인터페이스란 무엇인가요?

  • 추상 클래스에서 추상적인 부분(추상 메소드, 프로퍼티)만 따로 떼어 구현한 것으로 추상 클래스와 같이 다른 클래스의 구현, 사용 방향을 제시하는 목적으로 사용한다.

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

  • 추상 클래스는 다른 클래스들 같이 필드, 메소드 등 구현 가능하고 여기에 추가적으로 추상 메소드나 프로퍼티를 선언 가능하지만 클래스이기 때문에 단일 상속을 지원한다.
  • 인터페이스는 추상 메소드나 프로퍼티만 선언할 수 있고, 클래스와 달리 다중 상속을 지원한다.
 

[Unity/C#] 추상클래스, 인터페이스

해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 추상 메소드 한정자, 반환 형식, 메소드 이름, 매개변수 까지만 정의하고, 메소

deff-dev.tistory.com