본문 바로가기

C#

C# Interface (인터페이스 구현)

C# 문법 오늘은 Interface(인터페이스)를 알아보도록 하겠습니다. 인터페이스를 쓰는 이유는 다중 상속의 용이성, 그리고 계속 비교가 되는 추상클래스와의 상속성의 차이로 인한 객체지향적 코드의 완성과 같은 이유가 있습니다.  다중상속으로 활요이 무궁무진한 인터페이스에 대해 알아봅시다.


먼저 인터페이스의 기본 구성에 대해 알아봅시다. 인터페이스는 interface라는 접근자를 사용합니다. 기본 선언 순서는

interface 인터페이스 이름
{
	타입 이름();
    //타입 이름{get; set;} 프로퍼티도 가능
    //타입 이름{get;} get만도 가능
}

이런 형식으로 선언을 하게 된다. 먼저 인터페이스는 가상의 메서드 이기때문에 다형성의 특징이 나타난다. 이제 사용을 하려면 어떡게 해야하는지 알아보도록 하자.

인터페이스의 사용은 인터페이스 안에 있는 모든 멤버를 "구현"해야한다. 그리고 사용을 위해 상속을 하는곳에 인터페이스의 이름을 적어 넣고 접근 한정자를 꼭 public으로 적어주면 사용은 끝이다. 정말 간단하다.

인터페이스의 사용 예시이다.

interface IDamageable
{
	void OnDamage(float damage);
}
class Player : IDamageable
{
	public void OnDamage(float damage)
    {
    	playerHp -= damage;
    }
}

 

이렇게 IDamageable이라는 인터페이스를 만들고 Player에서 IDamageable의 OnDamage부분을 public 으로 구현해서 사용한 모습이다. 다음은 player의 클래스를 똑똑하게 활용한 예제를 적어보아야겠다.