미처 완성되지 못한 알고리즘

다중 인터페이스 상속 시 중복 메소드 처리 방법. 본문

IT/c#

다중 인터페이스 상속 시 중복 메소드 처리 방법.

-June- 2017. 9. 19. 19:36

    interface CarControl

    {

        void Gear(int i);

        void Off();

    }


    interface AudioControl

    {

        void Volume(int i);

        void Off();

    }


    public class Car : CarControl, AudioControl

    {

        public void Gear(int i )

        {

            Console.WriteLine("현재 기어는 {0}입니다.", i);

        }

        public void Volume(int i)

        {

            Console.WriteLine("현재 볼륨은 {0}입니다.", i);

        }

         void CarControl.Off()            

        {

            Console.WriteLine("자동차 시동을 껐습니다.");

        }


        void AudioControl.Off()

        {

            Console.WriteLine("오디오 전원을 끕니다.");

        }

    }


    class DerivedClass

    {


        static void Main(string[] args)

        {

            Car mycar = new Car();

            mycar.Gear(3);

            mycar.Volume(5);

//mycar.Off();                                                       //사용불가

            CarControl carCon = mycar;                                  //우회적으로 호출하는 문장.

            AudioControl audioCon = mycar;                           

            carCon.Off();                                                     //호출 성공!! mycar에서 직접적으로 호출이 불가능하다.

            audioCon.Off();

        }//Main

    }//class





-------------------------------------------------------------------------------------------------------------------------


앞에 한정자를 붙이지 못하는 점에 주목하자.


사용할 때,  클래스 변수에서 바로 호출을 못하므로, 해당 인터페이스의 변수를 사용해 우회적으로 호출한다.

'IT > c#' 카테고리의 다른 글

람다식 예  (0) 2017.09.25
인터페이스 예제  (0) 2017.09.20
상속 시 생성자 호출 순서  (0) 2017.09.18
event내부 구조 및 예제  (0) 2017.09.12
반환형이 object형식일 때  (0) 2017.09.11