
## 一、知识点文字精简### 1. 委托 多播委托1. 委托是**方法签名模板**用来存放格式一致的方法相当于方法名片。2. 多播委托依靠 添加多个方法、- 移除绑定方法。3. 执行多播委托时按照**添加顺序从上到下依次执行所有绑定方法**。### 2. 虚方法与多态1. 父类方法加 virtual开放重写权限允许子类重写。2. 子类重写同名方法必须加 override。3. 多态口诀**编译看左边(声明类型)运行看右边(实例对象)**编译阶段以父类做语法校验运行时执行子类重写方法。### 3. 继承 接口1. 类是**单继承**一个子类只能继承唯一一个父类不能多类继承。2. 接口是**多实现**一个类可以同时实现多个接口接口只定义行为规范没有实例字段。3. 继承复用父类成员接口约束类必须实现指定方法。## 二、完整代码示例### 示例1委托多播委托csharpusing System;//定义委托模板delegate void MsgDel();class DelegateDemo{static void Func1(){Console.WriteLine(执行第一个方法);}static void Func2(){Console.WriteLine(执行第二个方法);}static void Main(){MsgDel del Func1;del Func2; //多播绑定del(); //顺序执行Func1、Func2del - Func2; //解绑del(); //只执行Func1Console.ReadKey();}}### 示例2virtual override 多态csharpusing System;//父类public class Animal{public virtual void Cry(){Console.WriteLine(动物发出叫声);}}//子类重写public class Dog : Animal{public override void Cry(){Console.WriteLine(汪汪汪);}}class PolyDemo{static void Main(){//编译左边是Animal运行右边是Dog实例触发多态Animal a new Dog();a.Cry();Console.ReadKey();}}### 示例3单继承多接口实现csharpusing System;//定义接口interface IElectric{void Charge();}interface IRunning{void Run();}//父类class Vehicle{public void ShowType(){Console.WriteLine(这是交通工具);}}//子类单继承Vehicle同时实现2个接口class ElectricCar : Vehicle, IElectric, IRunning{public void Charge(){Console.WriteLine(电动车正在充电);}public void Run(){Console.WriteLine(电动车上路行驶);}}class InterfaceDemo{static void Main(){ElectricCar car new ElectricCar();car.ShowType();car.Charge();car.Run();Console.ReadKey();}}## 三、运行结果简要说明1. 多播委托先输出两个方法内容解绑后只输出第一个方法2. 多态代码输出「汪汪汪」而非父类默认叫声3. 继承接口依次打印交通工具、充电、行驶三行内容。