C#)인터페이스(Interface) 개념 정리

2023. 12. 28. 16:02프로그래밍 언어/C#

<이 개념 정리는 교육 과정에서 튜터님의 특강과 강의 동영상을 참고하였습니다>

인터페이스를 통해 클래스들은 공통적으로 동작을 정의하고, 이러한 동작들을 구현하는 클래스들은 해당 인터페이스를
구현(implement)함으로써 공통 규약을 준수할 수 있다.
이러한 개념을 사용하는 이유는 클래스를 쓸 때보다 훨씬 유연성과 확정성 있는 코드를 구현하기 위해서이다.

  • 인터페이스는 클래스가 구현해야 하는 동작을 정의하는 계약서이다. 즉, 인터페이스는 클래스에 어떤 동작을 구현해야 하는지
    알려준다. 이를 통해 클래스 간에 일련된 동작을 보장할 수 있다.
  • 인터페이스는 C#에서 다형성을 구현하는 중요한 개념이다. 다형성이란, 동일한 메서드를 가지고 있지만 다른 방식으로 동작하는
    여러 개의 객체를 사용할 수 있는 것을 말한다.
  • 인터페이스는 클래스의 형태를 갖지 않고, 동작에 대한 규약을 정의한다. 클래스는 이러한 인터페이스를 구현 함으로써 인터페이스에 정의된 동작을 보장한다.
  • 인터페이스를 사용하면 코드의 재사용성과 유연성을 높일 수 있다. 인터페이스를 구현한 클래스들은 동일한 동작을 제공 하므로,
    클라이언트 코드는 구현체의 내부 구현에 대해 알 필요가 없다. 이를 통해 코드의 결합도를 낮출 수 있으며, 유지 보수성을
    향상시킬 수 있습니다.
  • 인터페이스를 구현하려면 인터페이스에 정의된 모든 동작을 구현해야 합니다. 이를 통해 클래스는 인터페이스에 명시된 동작을
    보장하게 되며, 다형성을 구현할 수 있다.
  • 인터페이스는 다중 상속을 흉내내는 기능을 제공하여 여러 개의 인터페이스를 동시에 구현할 수 있다. 이를 통해 클래스는 다양한
    동작을 갖는 객체를 생성할 수 있고, 코드의 재사용성과 유연성을 극대화 할 수 있다.
  • C#에서 인터페이스를 잘 활용하면 유연하고 확장 가능한 코드를 작성할 수 있다. 인터페이스는 객체 지향 프로그래밍에서 중요한
    역할을 하며, 다형성을 통해 코드의 유연성을 높일 수 있다.

비교 클래스(Class) 인터페이스(Interface)

정의 데이터와 메서드의 집합으로 구성된 타입 동작에 대한 규약을 정의하는 계약서
다중 상속 단일 상속만 가능 다중 인터페이스 구현 가능
생성자 생성자를 가질 수 있음 생성자를 가질 수 없음
필드 인스턴스 필드와 정적 필드 지정 가능 인터페이스는 필드를 가질 수 없음
메서드 일반 메서드, 가상 메서드, 추상 메서드 가능 모든 메서드는 추상 메서드로 선언되어야함
속성 속성 지정 가능 속성 지정 가능

따라서, 인터페이스의 주요 특징으로 보자면 이렇게 볼 수 있다.

  1. 추상화 : 인터페이스는 추상적인 개념으로, 실제로 구현된 메서드가 없고, 메서드의 시그니처만을 가진다. 따라서 인터페이스는
    인스턴스화 될 수 없으며, 구현체가 필요하다.
  2. 메서드 시그니처 : 인터페이스는 구현 클래스가 반드시 구현해야 하는 메서드들의 시그니처를 정의한다. 메서드의 이름, 매개변수,
    반환 타입이 포함된다.
  3. 다중 상속 가능 : 클래스는 하나의 클래스만 상속받을 수 있지만, 여러 인터페이스를 동시에 구현할 수 있다. 이를 통해 다중 상속을
    흉내내는 것이 가능하다.
  4. 강제적 구현 : 클래스가 인터페이스를 구현하면, 인터페이스에서 정의한 모든 메서드를 반드시 구현해야 한다. 이로 인해 클래스는
    인터페이스에 정의된 동작을 강제로 구현하게 된다.
  5. 인터페이스 간 확장 : 인터페이스는 다른 인터페이스를 확장(extends) 할 수 있다. 이를 통해 더 큰 범위의 공통 동작을 정의할 수
    있다.

'프로그래밍 언어 > C#' 카테고리의 다른 글

Split 메서드  (0) 2024.07.27
람다식  (0) 2024.07.22
C#)문자열이 특정 타입을 확인하는 방법. TryParse 메서드  (1) 2023.12.26