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