public abstract class Log{ public abstract void Write( string log);} public abstract class LogWrapper : Log{ private Log _log; public LogWrapper(Log log) { _log = log; } public override void Write( string log) { _log.Write(log); }} // 避免了 "子类复子类,子类何其多" 的错误。 // 仅仅通过构造函数就将基类的属性添加到当前的类中。
我的理解:
类(A)想实现某个接口的一些功能,但是它懒,自己创建对象的时候偷拿了已经实现这个接口的类(B),方便的用了B中已经实现的方法 ,对其中的方法修修改改(装饰)就成自己的了。