이 질문에는 이미 답변이 있습니다.
C #에서는 언제 인터페이스를 사용해야하며 언제 추상 클래스를 사용해야합니까? 결정 요인은 무엇입니까?
추상 클래스의 장점은 다음과 같습니다.
인터페이스는 단순히 데이터 전달 계약이며 이러한 기능을 가지고 있지 않습니다. 그러나 일반적으로 유형은 한 클래스에서 파생 될 수 있지만 더 많은 수의 인터페이스를 구현할 수 있으므로 더 유연합니다.
추상 클래스와 인터페이스는 의미 론적으로 다르지만 사용법은 겹칠 수 있습니다.
추상 클래스는 일반적으로 유사한 클래스의 건물 기초로 사용됩니다. 클래스에 공통적 인 구현은 추상 클래스에있을 수 있습니다.
인터페이스는 일반적으로 클래스의 기능을 지정하는 데 사용되며 클래스는 매우 유사하지 않아도됩니다.
고려해야 할 또 다른 사항은 다중 상속이 없기 때문에 클래스가 인터페이스 / 추상 클래스에서 구현 / 상속 할 수 있지만 다른 기본 클래스에서 상속받을 수있게하려면 인터페이스를 사용하는 것입니다.
진짜 질문은 인터페이스 또는 기본 클래스를 사용할지 여부입니다. 이것은 이전에 다뤘습니다.
C #에서 추상 클래스 (키워드 "abstract"로 표시된 클래스)는 단순히 객체를 인스턴스화 할 수없는 클래스입니다. 이는 단순히 기본 클래스와 인터페이스를 구별하는 것과 다른 목적을 제공합니다.