C# interface 상속

조회수 634회
    interface ILogger
    {
        void Log();
    }

    class Base : ILogger
    {
        public void Log()
        {
            Console.WriteLine("Base().Log()");
        }
    }


    static void Main(string[] args)
    {
        ILogger Logger = new Base();
        Logger.Log();
    }

Logger.Log() 가 가능한 원리가 무슨 원리인가요 ?

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 인터페이스 상속받아서 가능한 거죠. doodoji 2018.10.1 16:48
  • 인터페이스는 상속한 클래스에게 자신이 가진 객체들을 강제적으로 구현하게 합니다. 따라서 ILogger를 상속하는 모든 클래스는 ILogger의 메서드, 프로퍼티를 무조건적으로 구현했기에 사용이 가능하다는 겁니다. 직접 만드신 Base 클래스도 상속하면서 ILogger에 의해 void Log()함수를 구현할 것을 강제하고 있습니다. 이로써 ILogger에 있는 Log 함수를 이용할 수 있는 것이죠. Luana7 2021.9.14 17:50

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)