728x90
반응형

C# 인터페이스와 추상클래스의 차이점

  Interface Abstract Class
접근 지정자

- 함수에 대한 접근 지정자를 가질수 없습니다.
- 기본적으로 public 입니다.

- 함수에 대한 접근 지정자를 가질 수 있습니다. 
구현 - 구현이 아닌 서명만 가질 수 있습니다.  - 구현을 제공할 수 있습니다. 
속도 - 인터페이스가 상대적으로 느립니다.  - 추상 클래스가 빠릅니다.
인스턴스화 - 인터페이스는 추상적이며 인스턴스화 할 수 없습니다.  - 추상클래스는 인스턴스화 할 수 없습니다. 
필드 - 인터페이스는 필드를 가질 수 없습니다. - 추상클래스는 필드와 상수를 정의 할 수 있습니다.
메소드 - 인터페이스에는 추상메소드만 있습니다. - 추상클래스에는 비추상메소드가 있을 수 있습니다.

 

  • C#에서 클래스는 하나 이상의 인터페이스를 상속합니다. 그러나 클래스는 하나의 추상클래스만 상속 할 수 있습니다.
  • C#에서 인터페이스는 생성자를 선언할 수 없습니다. 추상 클래스는 생성자를 선언할 수 있습니다.
  • C#에서 인터페이스는 클래스의 외부 능력을 정의하는 데 사용됩니다. 추상 클래스는 클래스의 실제 ID를 정의하는 데 사용되며 객체 또는 동일한 유형으로 사용됩니다.
  • C#에서 다양한 구현이 메소드 서명 만 공유하는 경우 인터페이스가 사용됩니다. 다양한 구현이 동일한 종류이고 동일한 동작 또는 상태를 사용하는 경우 추상 클래스가 사용됩니다.
  • C#에서 새 메소드가 인터페이스에 추가 된 경우 모든 인터페이스가 구현 된 위치를 추적하고 해당 메소드의 구현도 추가해야합니다.  추상 클래스에서 새 메소드가 추가 된 경우 기본 구현을 추가 할 수있는 옵션이 있으므로 모든 기존 코드가 올바르게 작동합니다.

 


정리


C#은 데이터 추상화에 사용되었습니다. 여러 클래스가 인터페이스를 구현해야하는 경우 인터페이스가 추상 클래스보다 낫습니다. 인터페이스 멤버는 정적일 수 없으며, 추상 클래스의 유일한 완전한 멤버는 정적 일 수 있습니다.


C#은 다중 상속을 지원하지 않으며 인터페이스는 주로 다중 상속을 구현하는 데 사용됩니다.

클래스는 하나 이상의 인터페이스를 구현할 수 있으며 하나의 추상 클래스에서만 상속합니다.

인터페이스는 주로 메서드 나 기능을 구현할 필요가없는 경우에만 사용됩니다.

추상 클래스는 최소한의 기본구현을 필요할때 사용됩니다.

 

C# 인터페이스와 추상클래스는 요구 사항에 따라 응용 프로그램을 개발하는 데 많이 사용되는 객체 지향 프로그래밍 개념입니다. 그것은 더 편안하고 비즈니스 요구 사항에 맞는 기술 리드에 의해 순수하게 선택됩니다.

C# 인터페이스와 추상 클래스는 모두 사용하기 쉽고 모든 프로그래밍 언어에서 쉽게 배울 수 있습니다.

728x90

+ Recent posts