C#面:详细举例阐述什么是多态性?

多态性是面向对象编程中的一个重要概念,它允许一个对象可以以多种不同的方式工作。在C#中,多态性通过虚函数来实现。

举个例子来说明多态性的概念。假设我们有一个基类Animal,它有一个虚方法MakeSound(),并有两个派生类Dog和Cat,它们分别重写了MakeSound()方法。

cs 复制代码
class Animal
{
    public virtual void MakeSound()
    {
        Console.WriteLine("Animal makes a sound");
    }
}

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

class Cat : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("Cat meows");
    }
}

现在我们可以创建Animal、Dog和Cat的对象,并调用它们的MakeSound()方法:

cs 复制代码
Animal animal = new Animal();
Dog dog = new Dog();
Cat cat = new Cat();

animal.MakeSound();  // 输出:Animal makes a sound
dog.MakeSound();     // 输出:Dog barks
cat.MakeSound();     // 输出:Cat meows

在这个例子中,animal、dog和cat都是Animal类型的对象,但是它们调用MakeSound()方法时表现出不同的行为。这就是多态性的体现,同一个方法在不同的对象上表现出不同的行为。

需要注意的是,为了实现多态性,我们需要将基类的方法声明为虚方法(使用关键字),并在派生类中使用关键字重写基类的方法。这样,当我们通过基类的引用调用虚方法时,实际上会根据对象的实际类型来确定调用哪个重写的方法。

相关推荐
小成202303202652 小时前
Linux高级02
linux·开发语言
知行合一。。。2 小时前
Python--04--数据容器(总结)
开发语言·python
咸鱼2.03 小时前
【java入门到放弃】需要背诵
java·开发语言
ZK_H3 小时前
嵌入式c语言——关键字其6
c语言·开发语言·计算机网络·面试·职场和发展
A.A呐3 小时前
【C++第二十九章】IO流
开发语言·c++
椰猫子3 小时前
Java:异常(exception)
java·开发语言
lifewange3 小时前
pytest-类中测试方法、多文件批量执行
开发语言·python·pytest
cmpxr_3 小时前
【C】原码和补码以及环形坐标取模算法
c语言·开发语言·算法
2401_827499994 小时前
python项目实战09-AI智能伴侣(ai_partner_5-6)
开发语言·python
PD我是你的真爱粉4 小时前
MCP 协议详解:从架构、工作流到 Python 技术栈落地
开发语言·python·架构