C#) 인터페이스
인터페이스는 클래스나 구조체에서 구현해야 하는 “규칙”을 정의하는 기능이다. C#에서 인터페이스는 다중 상속을 지원하고, 객체의 일관성을 유지하는 중요한 역할을 한다.
인터페이스란
인터페이스(interface)는 클래스나 구조체에서 반드시 구현해야 할 메서드, 속성, 이벤트, 인덱서 등을 정의하는 추상적인 타입이다.
- 구현부가 없는 메서드만 선언
- 다른 클래스에서 반드시 구현해야 함
- 다중 상속이 가능
// 인터페이스 정의
public interface IAnimal
{
void MakeSound(); // 구현부 없는 메서드 (추상 메서드)
}
// 인터페이스 구현 (클래스에서 인터페이스 상속)
public class Dog : IAnimal
{
public void MakeSound() // 반드시 인터페이스의 메서드를 구현해야 함
{
Console.WriteLine("멍멍!");
}
}
public class Cat : IAnimal
{
public void MakeSound()
{
Console.WriteLine("야옹!");
}
}
class Program
{
static void Main()
{
IAnimal myDog = new Dog();
myDog.MakeSound(); // "멍멍!" 출력
IAnimal myCat = new Cat();
myCat.MakeSound(); // "야옹!" 출력
}
}
인터페이스의 특징
메서드의 구현부가 없다.
public interface IExample
{
void PrintMessage(); // 구현부 없음
}
다중 상속 지원
public interface IFlyable
{
void Fly();
}
public interface ISwimmable
{
void Swim();
}
// 다중 인터페이스 구현 가능
public class Duck : IFlyable, ISwimmable
{
public void Fly()
{
Console.WriteLine("오리가 난다!");
}
public void Swim()
{
Console.WriteLine("오리가 난다!");
}
}
class Program
{
static void Main()
{
Duck duck = new Duck();
duck.Fly(); // "오리가 난다!"
duck.Swim(); // "오리가 난다!"
}
}
댓글남기기