인터페이스 - 상속

Fruit·2023년 3월 30일

✨ Hello C#!

목록 보기
34/34
post-thumbnail

🌸 상속: :

  • 클래스, 구조체, 인터페이스가 인터페이스를 상속할 수 있다.

인터페이스를 수정할 수 없는 경우에 사용한다.
ꞏ 상속하려는 인터페이스가 소스 코드로 제공되지 않는 경우
ꞏ 상속하려는 인터페이스를 상속하는 클래스들이 존재하는 경우

파생 인터페이스 이름 : 기반 인터페이스 이름

using System;

namespace DerivedInterface
{
    interface ILogger
    {
        void WriteLog(int message);
    }

    interface IFormattableLogger : ILogger      // 인터페이스(ILogger) 상속
    {
        void WriteLog(string format, params Object[] args);
    }

    class ConsoleLogger2 : IFormattableLogger
    {
        public void WriteLog(int _message) 
        {
            string message = _message.ToString();
            Console.WriteLine("{0} - {1}", DateTime.Now.ToString("yyyy.MM.dd hh:mm:ss"), message);
        }
        public void WriteLog(string format, params Object[] args)
        {
            string message = String.Format(format, args);
            Console.WriteLine("{0} - {1}", DateTime.Now.ToString("yyyy.MM.dd hh:mm:ss"), message);
        }
    }

    class MainApp
    {
        static void Main(string[] args)
        {
            IFormattableLogger logger = new ConsoleLogger2();

            logger.WriteLog(1234);              // WriteLog(int _message) 
            logger.WriteLog("{0} + {1} = {2}", 1, 1, 2);        // WriteLog(string format, params Object[] args)
        }
    }
}

[실행 결과]
2023.03.30 10:15:12 - 1234
2023.03.30 10:15:12 - 1 + 1 = 2
profile
🌼인생 참 🌻꽃🌻 같다🌼

0개의 댓글