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

在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)来实现的。
关键点:
示例:多态调用
Animal myAnimal = new Dog(); myAnimal.Eat(); // 输出:动物在吃东西 myAnimal.MakeSound(); // 输出:汪汪!(调用的是 Dog 的重写方法)
尽管变量类型是 Animal,但实际对象是 Dog,所以 MakeSound() 调用的是子类的版本 —— 这就是多态。
带参数构造函数的继承示例:
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} 喵喵叫");
}
}
继承帮助我们复用代码,建立类之间的层次关系;多态让我们能以统一的方式处理不同类型的对象,提升程序的扩展性和维护性。掌握 virtual、override 和父类引用指向子类对象的用法,是理解C#面向对象编程的关键一步。
基本上就这些,动手写几个类试试,很快就能上手。
以上就是C#如何实现继承 C#类的继承和多态性入门的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号