더북(TheBook)

45.4 인터페이스를 사용한 다중 상속 구현하기

다중 상속은 클래스 하나를 콤마로 구분해서 인터페이스 하나 이상을 상속하는 것을 의미합니다. C#에서 클래스는 클래스에 대한 단일 상속만 지원하는 대신, 인터페이스는 클래스에 인터페이스를 하나 이상 상속할 수 있습니다. 다음 내용을 입력한 후 실행해 보세요.

인터페이스를 사용한 다중 상속: InterfaceInheritance.cs

using System;

namespace InterfaceInheritance
{
    interface IAnimal
    {
        void Eat();
    }

    interface IDog
    {
        void Yelp();
    }

    class Dog : IAnimal, IDog //인터페이스를 사용한 다중 상속
    {
        public void Eat() => Console.WriteLine("먹다.");
        public void Yelp() => Console.WriteLine("짖다.");
    }

    class InterfaceInheritance
    {
        static void Main()
        {
            Dog dog = new Dog();
            dog.Eat();     //ⓐ IAnimal 인터페이스 상속
            dog.Yelp();    //ⓑ IDog 인터페이스 상속
        }
    }
}

실행 결과

먹다.
짖다.

Dog 클래스는 IAnimal 인터페이스와 IDog 인터페이스에서 다중 상속을 받습니다. IAnimal 인터페이스에서 Eat() 메서드를 상속받고 IDog 인터페이스에서 Yelp() 메서드를 상속받아 메서드 2개의 내용을 Dog 클래스에서 직접 구현하는 형태입니다.