亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

精通 C# 继承与多态:实战代码示例详解

什么是 C# 继承?

继承 是 C# 面向对象设计的基石。它让子类自动获得父类的字段和方法,同时允许子类覆盖或扩展这些行为。这促进代码复用、简化维护、建立清晰层级。

C# 继承示例

下面分步演示如何实现继承并使用受保护成员。

步骤 1 – 修改基类

打开 Tutorial.cs 将 Tutorial 类的关键字段改为 protected:

精通 C# 继承与多态:实战代码示例详解

使用 protected 确保仅派生类可直接访问这些字段。

步骤 2 – 创建派生类

在 Tutorial.cs 基类定义后追加以下代码:

精通 C# 继承与多态:实战代码示例详解

说明:

  1. 用冒号(:)语法声明 Guru99Tutorial 为 Tutorial 的子类。
  2. 添加 RenameTutorial 方法为 TutorialName 赋新值。
  3. 因为 TutorialName 是 protected,Guru99Tutorial 可访问它,即使未显式声明。

步骤 3 – 在 Program.cs 中使用派生类

用以下内容替换 Program.cs:

精通 C# 继承与多态:实战代码示例详解

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();
        }
    }
}

说明:

  1. 程序实例化 Guru99Tutorial 而非基类 Tutorial。
  2. 调用 RenameTutorial 修改标题。
  3. 尽管 GetTutorial 定义在基类,派生实例可直接调用。

运行代码打印:

精通 C# 继承与多态:实战代码示例详解

什么是 C# 多态?

多态 让单一接口代表不同底层形式。在 C# 中常表现为方法重载或重写,允许同名方法根据参数或上下文执行不同任务。

C# 多态示例

演示同一类内的方法重载。

步骤 1 – 更新基类

按如下修改 Tutorial.cs:

精通 C# 继承与多态:实战代码示例详解

关键变更:

  1. SetTutorial 现有两个重载——一个接受 int 和 string,另一个仅接受 string。
  2. 两个重载均给对应字段赋值。

步骤 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();
        }
    }
}

说明:

  1. 首次调用传递 id 和 name 给双参数重载。
  2. 二次调用仅传 name,调用单参数重载。

控制台显示:

精通 C# 继承与多态:实战代码示例详解

进阶场景可添加 GetTutorialID 方法单独获取 ID。

总结

C语言

  1. C# 表达式、语句与代码块:全面指南与实战示例
  2. C# 类与对象:面向对象编程的基石
  3. 掌握 C# 抽象类与抽象方法:实战指南
  4. 理解 C# 分部类与分部方法
  5. 掌握 C# sealed 类与方法:用法、示例与代码安全性能提升
  6. C++ 函数详解:从声明到调用的实战指南
  7. C++ Struct 与 Class 核心差异、语法及最佳实践
  8. while 与 do-while 循环深度对比:原理、语法与实战案例全解析
  9. C# 程序结构解析:从 Hello World 看命名空间、类、Main 入口与编译运行
  10. C# 继承完全指南:基类、派生类、初始化与多重继承替代方案
  11. C# 多态完全指南:静态多态与动态多态(重载、重写、虚方法)
  12. 理解 Python type() 与 isinstance():实战示例详解