S_pot

C#_인터페이스의 장점: 기능을 빠트리지 않고 입력 본문

C#

C#_인터페이스의 장점: 기능을 빠트리지 않고 입력

S_pot 2021. 6. 4. 14:51
interface Phone
    {
        void Call();
        void Recv();
    }
                        // 자동으로 코드생성 가능
    class Sami : Phone  // interface Phone을 상속받으면 call()과 Recv()를 모두 사용하지 않으면 실행되지 않는다.
                        // 실수로 기능을 빼먹는 것을 방지한다.(인터페이스의 장점)
    {
        public void Call()
        {
            Console.WriteLine("나 사미전화긴데 전화 검");
        }

        public void Recv()
        {
            Console.WriteLine("나 사미전화긴데 전화 받음");
        }
    }

    class Hong : Phone  // 자동으로 코드생성 가능
    {
        public void Call()
        {
            Console.WriteLine("나 홍전화긴데 전화 검");
        }

        public void Recv()
        {
            Console.WriteLine("나 홍전화긴데 전화 받음");
        }
    }

    class Helgi : Phone // 자동으로 코드생성 가능
    {
        public void Call()
        {
            Console.WriteLine("나 헬지전화긴데 전화 검");
        }

        public void Recv()
        {
            Console.WriteLine("나 헬지전화긴데 전화 받음");
        }
    }

   

    class Program
    {
        static void Main(string[] args)
        {
            Sami aSami = new Sami();
            Helgi aHelgi = new Helgi();
            Hong aHong = new Hong();

            Phone[] aPhone = new Phone[] { aSami, aHelgi, aHong };
            // 배열을 이용해 한번에 실행

            foreach (var Temp in aPhone)
            {              
                Temp.Call();
            }

        }
    }