精通 C# 继承与多态:实战代码示例详解
什么是 C# 继承?
继承 是 C# 面向对象设计的基石。它让子类自动获得父类的字段和方法,同时允许子类覆盖或扩展这些行为。这促进代码复用、简化维护、建立清晰层级。
- 定义父类和子类。
- 子类继承父类成员。
- 子类可修改继承行为。
- 子类可添加自身成员。
C# 继承示例
下面分步演示如何实现继承并使用受保护成员。
步骤 1 – 修改基类
打开 Tutorial.cs 将 Tutorial 类的关键字段改为 protected:

使用 protected 确保仅派生类可直接访问这些字段。
步骤 2 – 创建派生类
在 Tutorial.cs 基类定义后追加以下代码:

说明:
- 用冒号(
:)语法声明Guru99Tutorial为Tutorial的子类。 - 添加
RenameTutorial方法为TutorialName赋新值。 - 因为
TutorialName是 protected,Guru99Tutorial可访问它,即使未显式声明。
步骤 3 – 在 Program.cs 中使用派生类
用以下内容替换 Program.cs:

using System;
namespace DemoApplication {
public class Tutorial {
protected int TutorialID;
protected string TutorialName;
public void SetTutorial(int pID, string pName) {
TutorialID = pID;
TutorialName = pName;
}
public string GetTutorial() {
return TutorialName;
}
}
public class Guru99Tutorial : Tutorial {
public void RenameTutorial(string pNewName) {
TutorialName = pNewName;
}
static void Main(string[] args) {
Guru99Tutorial pTutor = new Guru99Tutorial();
pTutor.RenameTutorial(".Net by Guru99");
Console.WriteLine(pTutor.GetTutorial());
Console.ReadKey();
}
}
}
说明:
- 程序实例化
Guru99Tutorial而非基类Tutorial。 - 调用
RenameTutorial修改标题。 - 尽管
GetTutorial定义在基类,派生实例可直接调用。
运行代码打印:

什么是 C# 多态?
多态 让单一接口代表不同底层形式。在 C# 中常表现为方法重载或重写,允许同名方法根据参数或上下文执行不同任务。
C# 多态示例
演示同一类内的方法重载。
步骤 1 – 更新基类
按如下修改 Tutorial.cs:

关键变更:
SetTutorial现有两个重载——一个接受int和string,另一个仅接受string。- 两个重载均给对应字段赋值。
步骤 2 – 在 Program.cs 中测试
用以下代码替换 Program.cs:
using System;
namespace DemoApplication {
class Tutorial {
public int TutorialID;
public string TutorialName;
public void SetTutorial(int pID, string pName) {
TutorialID = pID;
TutorialName = pName;
}
public void SetTutorial(string pName) {
TutorialName = pName;
}
public string GetTutorial() {
return TutorialName;
}
static void Main(string[] args) {
Tutorial pTutor = new Tutorial();
pTutor.SetTutorial(1, "First Tutorial");
Console.WriteLine(pTutor.GetTutorial());
pTutor.SetTutorial("Second Tutorial");
Console.WriteLine(pTutor.GetTutorial());
Console.ReadKey();
}
}
}
说明:
- 首次调用传递
id和name给双参数重载。 - 二次调用仅传
name,调用单参数重载。
控制台显示:

进阶场景可添加 GetTutorialID 方法单独获取 ID。
总结
- 继承允许子类继承并扩展父类成员。
- 多态,特别是方法重载,让单一方法名适应不同参数集。
- 两者皆为编写整洁、可维护、可复用 C# 代码的关键。
C语言
- C# 表达式、语句与代码块:全面指南与实战示例
- C# 类与对象:面向对象编程的基石
- 掌握 C# 抽象类与抽象方法:实战指南
- 理解 C# 分部类与分部方法
- 掌握 C# sealed 类与方法:用法、示例与代码安全性能提升
- C++ 函数详解:从声明到调用的实战指南
- C++ Struct 与 Class 核心差异、语法及最佳实践
- while 与 do-while 循环深度对比:原理、语法与实战案例全解析
- C# 程序结构解析:从 Hello World 看命名空间、类、Main 入口与编译运行
- C# 继承完全指南:基类、派生类、初始化与多重继承替代方案
- C# 多态完全指南:静态多态与动态多态(重载、重写、虚方法)
- 理解 Python type() 与 isinstance():实战示例详解