
인터페이스를 수정할 수 없는 경우에 사용한다.
ꞏ 상속하려는 인터페이스가 소스 코드로 제공되지 않는 경우
ꞏ 상속하려는 인터페이스를 상속하는 클래스들이 존재하는 경우
파생 인터페이스 이름 : 기반 인터페이스 이름
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