using System; namespace a { public abstract class Logger { public abstract void Write (string s); public virtual string GetVersion() { return "LoggerBase 1.0"; } } public class NormalLogger : Logger { public override void Write( string s){ Console.WriteLine(s); } public override string GetVersion() { return "NormalLogger 1.0"; } } public class ColorLogger : Logger { public override void Write( string s){ Console.WriteLine(s); } public override string GetVersion() { Console.ForegroundColor = ConsoleColor.DarkBlue; return "ColoredLogger 1.0"; } } class LoggerService { public LoggerService(Logger a){ public string Version() { return a.GetVersion(); } public void Log(string log){ } } } class Program { public static void Main(string[] args) { Console.ReadKey(); } } }