0

0

C#如何实现继承 C#类的继承和多态性入门

畫卷琴夢

畫卷琴夢

发布时间:2025-11-06 21:33:02

|

840人浏览过

|

来源于php中文网

原创

继承使子类复用父类功能,多态通过virtual和override实现同一方法不同行为。示例中Dog继承Animal并重写MakeSound,Animal引用指向Dog实例时调用的是子类方法,体现多态性。C#支持单类继承但可实现多接口,构造函数需显式传递参数给基类,sealed类不可被继承。掌握这些特性有助于提升代码扩展性与维护性。

c#如何实现继承 c#类的继承和多态性入门

在C#中,继承多态性面向对象编程的三大核心特性中的两个(另一个是封装)。它们让代码更灵活、可复用,并支持扩展。下面带你快速掌握C#中类的继承与多态性的基本用法。

什么是继承?

继承允许一个类(子类)获取另一个类(父类)的字段、方法和属性。子类可以在不重复编写代码的前提下,复用并扩展父类的功能。

在C#中使用冒号 : 来表示继承。

示例:简单的继承结构

public class Animal
{
    public void Eat()
    {
        Console.WriteLine("动物在吃东西");
    }

    public virtual void MakeSound()
    {
        Console.WriteLine("动物发出声音");
    }
}

public class Dog : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("汪汪!");
    }

    public void Bark()
    {
        Console.WriteLine("狗在叫");
    }
}

上面代码中,Dog 类继承自 Animal 类,因此它拥有 Eat() 方法,也可以重写或新增自己的行为。

如何实现多态性?

多态性是指同一个方法调用可以根据对象的实际类型表现出不同的行为。它是通过虚方法(virtual)和重写(override)来实现的。

关键点:

火山写作
火山写作

字节跳动推出的中英文AI写作、语法纠错、智能润色工具,是一款集成创作、润色、纠错、改写、翻译等能力的中英文 AI 写作助手。

下载
  • 父类中用 virtual 声明可被重写的方法
  • 子类中用 override 替换父类的实现
  • 可以用父类引用指向子类对象,运行时自动调用对应的方法

示例:多态调用

Animal myAnimal = new Dog();
myAnimal.Eat();        // 输出:动物在吃东西
myAnimal.MakeSound();  // 输出:汪汪!(调用的是 Dog 的重写方法)

尽管变量类型是 Animal,但实际对象是 Dog,所以 MakeSound() 调用的是子类的版本 —— 这就是多态。

常见规则和注意事项

  • C#只支持单类继承 —— 一个类只能直接继承一个父类
  • 可以实现多个接口(interface),弥补单继承限制
  • 构造函数不会被继承,但子类会自动调用父类的无参构造函数
  • 若父类没有无参构造函数,需在子类中用 : base(...) 显式调用
  • 标记为 sealed 的类不能被继承

带参数构造函数的继承示例:

public class Animal
{
    public string Name { get; set; }

    public Animal(string name)
    {
        Name = name;
    }
}

public class Cat : Animal
{
    public Cat(string name) : base(name) { }

    public override void MakeSound()
    {
        Console.WriteLine($"{Name} 喵喵叫");
    }
}

小结

继承帮助我们复用代码,建立类之间的层次关系;多态让我们能以统一的方式处理不同类型的对象,提升程序的扩展性和维护性。掌握 virtualoverride 和父类引用指向子类对象的用法,是理解C#面向对象编程的关键一步。

基本上就这些,动手写几个类试试,很快就能上手。

相关专题

更多
go语言 面向对象
go语言 面向对象

本专题整合了go语言面向对象相关内容,阅读专题下面的文章了解更多详细内容。

54

2025.09.05

java面向对象
java面向对象

本专题整合了java面向对象相关内容,阅读专题下面的文章了解更多详细内容。

45

2025.11.27

java多态详细介绍
java多态详细介绍

本专题整合了java多态相关内容,阅读专题下面的文章了解更多详细内容。

13

2025.11.27

java多态详细介绍
java多态详细介绍

本专题整合了java多态相关内容,阅读专题下面的文章了解更多详细内容。

13

2025.11.27

java多态详细介绍
java多态详细介绍

本专题整合了java多态相关内容,阅读专题下面的文章了解更多详细内容。

13

2025.11.27

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

980

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

36

2025.10.17

go中interface用法
go中interface用法

本专题整合了go语言中int相关内容,阅读专题下面的文章了解更多详细内容。

76

2025.09.10

苹果官网入口直接访问
苹果官网入口直接访问

苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

10

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C# 教程
C# 教程

共94课时 | 5.2万人学习

550W粉丝大佬手把手从零学JavaScript
550W粉丝大佬手把手从零学JavaScript

共1课时 | 0.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号