当前位置: 首页 > news >正文

委托、多态、继承接口

## 一、知识点文字精简
### 1. 委托 & 多播委托
1. 委托是**方法签名模板**,用来存放格式一致的方法,相当于方法名片。
2. 多播委托依靠 `+=` 添加多个方法、`-=` 移除绑定方法。
3. 执行多播委托时,按照**添加顺序从上到下依次执行所有绑定方法**。

### 2. 虚方法与多态
1. 父类方法加 `virtual`:开放重写权限,允许子类重写。
2. 子类重写同名方法必须加 `override`。
3. 多态口诀:**编译看左边(声明类型),运行看右边(实例对象)**;编译阶段以父类做语法校验,运行时执行子类重写方法。

### 3. 继承 & 接口
1. 类是**单继承**:一个子类只能继承唯一一个父类,不能多类继承。
2. 接口是**多实现**:一个类可以同时实现多个接口,接口只定义行为规范,没有实例字段。
3. 继承复用父类成员,接口约束类必须实现指定方法。

## 二、完整代码示例
### 示例1:委托+多播委托

```csharp
using 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、Func2

del -= Func2; //解绑
del(); //只执行Func1
Console.ReadKey();
}
}
```

### 示例2:virtual + override 多态
```csharp
using 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:单继承+多接口实现
```csharp
using 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. 继承接口:依次打印交通工具、充电、行驶三行内容。

http://www.rkmt.cn/news/1469809.html

相关文章:

  • 计算机毕业设计之C5.0决策树算法在学生成绩预测中应用
  • 解锁上班新姿势[特殊字符]
  • 无需下载matlab,用快马ai平台5分钟搭建在线矩阵计算与绘图原型
  • SMUDebugTool:AMD Ryzen处理器深度调试与性能调优完整指南
  • 3步掌握APK安装器:Windows上运行安卓应用的终极指南
  • 安卓虚拟摄像头技术深度解析:3大核心原理与5个实战应用场景
  • 景区旅游小程序源码(含微信前端页面+Node/PHP后端服务)
  • 【高届数计算机方向会议】第七届计算机视觉与数据挖掘国际学术会议(ICCVDM 2026)
  • AI工具竞品分析怎么做?3类致命误区正在拖垮你的产品决策(附可落地的5维评估矩阵)
  • 终极暗黑2存档编辑器指南:5分钟打造完美游戏体验
  • 高速PCB设计中过孔的寄生效应与信号完整性优化实战
  • 2026云南美术培训行业深度测评:3家综合实力突出画室的核心能力解析 - 云南美术头条
  • 影刀RPA店群自动化性能调优实战:Python异步执行剖析与资源利用率优化
  • Miro 做白板,Picdoc 做图表,我的分工选择
  • 2026年6月四川靠谱型钢厂汇总|最新钢管吨价+本地放心采购指南 - 四川盛世钢联营销中心
  • AI辅助数据库设计:快马智能对话解析需求,自动生成并优化ER图方案
  • 新手福音,在快马平台免安装jdk17直接上手编写第一个java程序
  • 零基础小白实践vibe coding:用AI生成一个可玩的数独游戏全记录
  • 【Redis】面试知识点一点就会!
  • 2026桂林防水补漏哪家好?住建实地测评权威榜单TOP5|卫生间免砸砖/阳台屋顶/厨卫漏水维修(6月桂林专项调研) - 苏易修缮
  • 关于ST-Link安装驱动之后电脑还是无法识别的问题
  • 094、视频流实时检测管线:FFmpeg 拉流 + YOLO 推理 + Kafka 结果分发架构
  • Kubernetes DaemonSet — 企业级应用场景与实战实例【20260605】001篇
  • 当typora遇见ai:利用快马平台打造具备智能续写与润色功能的下一代写作工具
  • 南宁家政公司怎么选?这7个标准比好评更重要 - 教育信息速递
  • 终极指南:如何用Python高效自动化COMSOL仿真全流程
  • ttsmaker文字转语音零基础避坑指南,从入门到熟练操作
  • 如何快速掌握图表数据提取:科研人员的完整指南
  • 基于STC89C52的波形发生器Keil+Proteus联合仿真工程:含可烧录HEX与MAX517数模输出电路
  • AI工具产品路线预测:5个被92%企业忽略的关键信号,错过将落后下一代竞争周期