using System; namespace a { public abstract class Logger { public abstract void Write (string s); public virtual string GetVersion() { return "LoggerBase 1.0"; } } abstract class NormalLogger : Logger { public override void Write( string s){ Console.WriteLine(s); } public override string GetVersion() { return "NormalLogger 1.0"; } } abstract 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 { } class Program { public static void Main(string[] args) { Console.ReadKey(); } } }