프로그래밍/C#

Interface

selinatsu 2024. 10. 10. 20:10
반응형

C# Interface에 대한 설명

C#에서 interface는 클래스나 구조체가 구현해야 하는 **계약(Contract)**과 같은 개념입니다. interface는 메서드, 속성, 이벤트 등의 형식을 정의하며, 실제로 그 기능을 어떻게 구현할지는 해당 interface를 구현하는 클래스나 구조체에서 결정합니다.

 

기본 개념

interface구현이 아닌 형식을 정의합니다.

즉, 메서드나 속성의 이름, 반환 타입 등을 지정하고, 실제 구현 내용은 구현하는 클래스에서 작성합니다. 또한, interface는 클래스와 달리 다중 상속이 가능합니다. 클래스는 하나의 부모 클래스만 상속할 수 있지만, 여러 interface를 동시에 구현할 수 있어 유연하게 구조를 설계할 수 있습니다.

 

사용 이유

표준화 :

다양한 클래스가 같은 기능을 제공해야 할 때, interface를 통해 메서드와 속성의 구조를 동일하게 유지할 수 있습니다. 이를 통해 일관된 코드 스타일을 유지할 수 있습니다.

 

유연성 :

서로 다른 클래스가 동일한 interface를 구현하면, 해당 클래스들을 동일한 방식으로 처리할 수 있습니다.

이로 인해 코드가 훨씬 유연해집니다.

 

확장성 :

새로운 기능을 추가할 때, 기존 코드 변경 없이 새로운 클래스가 interface를 구현함으로써 기존 기능과의 호환성을 유지하면서 쉽게 확장할 수 있습니다.

 

// 인터페이스 정의
public interface IFlyable
{
    void Fly(); // 구현은 없고 메서드 형식만 정의
}

// 인터페이스 구현하는 클래스들
public class Bird : IFlyable
{
    public void Fly()
    {
        Console.WriteLine("The bird is flying.");
    }
}

public class Airplane : IFlyable
{
    public void Fly()
    {
        Console.WriteLine("The airplane is flying.");
    }
}

 

위 예시에서 IFlyable이라는 interfaceFly라는 메서드를 요구합니다.

BirdAirplane 클래스는 이 interface를 구현하여 각각 자신만의 방식으로 Fly 메서드를 정의합니다.

 

이렇게 interface를 사용하면 다양한 클래스가 동일한 동작(여기서는 Fly)을 구현하도록 강제할 수 있어 코드의 일관성과 유지보수성이 높아집니다.

반응형

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

event 와 delegate  (0) 2024.10.12
delegate  (1) 2024.10.12
var 키워드  (0) 2024.10.08
이터레이터 메서드  (0) 2024.10.05
yield return  (0) 2024.10.04