C# 프로그래밍/기초 문법

[c#] 인터페이스란

내공부방 2024. 7. 14. 21:30
반응형

 

인터페이스란

클래스나 구조체가 특정 기능을 구현하도록 강제하는 Contract 역할을 하는 것이다.

그럼 이제 본격적으로 인터페이스의 특징과 사용 예제들을 확인해보자 

 

인터페이스의 특징

  • 구현 강제: 인터페이스를 구현하는 클래스는 인터페이스에서 정의한 모든 멤버를 구현해야 한다.
  • 다중 상속 허용: 클래스는 여러 인터페이스를 구현할 수 있다. (클래스는 하나만 상속이 가능)
  • 다형성 지원: 인터페이스를 통해 객체의 구체적인 타입을 몰라도 해당 객체를 다룰 수 있다.

인터페이스 예제

그럼 예제 코드를 보면서 이해를 해보자 

아래 인터페이스는 객체가 파괴가 되었을 때 일관되게 처리하기 위해 인터페이스를 활용했다.  

public interface IDestructible
{
   public void Destruct();
}

 

IDestructible 인터페이스를 상속받은 BikeController 클래스에서 

Bike가 데미지를 받아 0 이하가 되어 파괴될 때 처리하고자 IDestructible 를 상속받아 

 

 if (BikeShield) 
            if (BikeShield.TakeDamage(Mathf.RoundToInt(amount)) <= 0)
                Destruct();

이와 같이 사용을 했다.

 

public class BikeController : Subject, IBikeElement, IDamageable, IDestructible
{

	...
    
    
    public void TakeDamage(float amount, DamageType type) // TODO: Implement a damage state class and encapsulate the following code:
    {
       ...


        if (BikeShield) 
            if (BikeShield.TakeDamage(Mathf.RoundToInt(amount)) <= 0)
                Destruct();

        Notify();
    }
    
    public void Destruct()
    {
        // TODO: Add destruct state
    }
}

 

 

이렇게 함으로써 추후 파괴 로직을 각 클래스 마다 다르게 정의하여 코드의 유연성과 확장성을 높힐 수 있다!

 

반응형