核心:继承应该是在存在逻辑关系的环境中使用,而不是出于方便的目的。没有意义的继承用委派替代【用组合替代继承】,这样可以避免类中增加额外没有意义的接口。
代码演示:
1、代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ReplaceInheritanceWithDelegation { /// <summary> /// 小鸟 /// </summary> public class Bird { public void Fly() { Console.WriteLine("在蓝天上飞翔~~"); } } /// <summary> /// 飞机 /// </summary> public class Airplane { private Bird bird { get; set; } public Airplane() { bird = new Bird(); } public void Fly() { bird.Fly(); } } }
2、客户端
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ReplaceInheritanceWithDelegation { class Program { /// <summary> /// 飞机和小鸟都能飞,但是飞机不是鸟,所以不能直接使用继承去使用鸟的飞翔的接口 /// </summary> /// <param name="args"></param> static void Main(string[] args) { Bird bird = new Bird(); bird.Fly(); Airplane airplace = new Airplane(); airplace.Fly(); Console.ReadKey(); } } }
结果展示:
写写博客,方便自己也方便需要的人~~