45.5 명시적인 인터페이스 구현하기

    인터페이스를 사용한 다중 상속이 가능하기에 각 인터페이스에 동일한 멤버가 구현되어 있을 때가 있습니다. 이때는 명시적으로 어떤 인터페이스의 멤버를 실행할지 지정해야 합니다. 다음 내용을 입력한 후 실행해 보세요.

    명시적인 인터페이스 구현: InterfaceExplicit.cs

    using System;
    
    interface IDog
    {
        void Eat();
    }
    
    interface ICat
    {
        void Eat();
    }
    
    class Pet : IDog, ICat
    {
        void IDog.Eat() => Console.WriteLine("Dog Eat"); //① 명시적으로 IDog 지정
    
        void ICat.Eat() => Console.WriteLine("Cat Eat");  //② 명시적으로 ICat 지정
    }
    
    class InterfaceExplicit
    {
        static void Main()
        {
            Pet pet = new Pet();
            ((IDog)pet).Eat(); //ⓐ pet 개체를 IDog 형식으로 변환
            ((ICat)pet).Eat(); //ⓑ pet 개체를 ICat 형식으로 변환
    
            IDog dog = new Pet();
            dog.Eat();
            ICat cat = new Pet();
            cat.Eat();
        }
    }
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.