} class D"> } class D">
117.info
人生若只如初见

C#中怎么实现多态性

在C#中实现多态性一般通过继承和接口实现。具体方法如下:

  1. 继承:通过创建一个父类和多个子类,子类继承父类的特性,并且可以重写父类的方法来实现多态性。例如:
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 myDog = new Dog();
Animal myCat = new Cat();

myDog.MakeSound(); // Output: Dog barks
myCat.MakeSound(); // Output: Cat meows
  1. 接口:通过定义一个接口,然后让多个类实现这个接口,实现接口方法的多态性。例如:
interface IShape
{
    double GetArea();
}

class Circle : IShape
{
    public double Radius { get; set; }

    public double GetArea()
    {
        return Math.PI * Radius * Radius;
    }
}

class Rectangle : IShape
{
    public double Width { get; set; }
    public double Height { get; set; }

    public double GetArea()
    {
        return Width * Height;
    }
}

IShape myCircle = new Circle() { Radius = 5 };
IShape myRectangle = new Rectangle() { Width = 5, Height = 10 };

Console.WriteLine(myCircle.GetArea()); // Output: 78.54
Console.WriteLine(myRectangle.GetArea()); // Output: 50

通过以上两种方法,可以实现不同类对象对同一个方法的调用,实现多态性。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe20dAzsICABUAFc.html

推荐文章

  • C++ fprintf()实例讲解

    fprintf() 函数用于将数据写入到文件中。它的原型如下:
    int fprintf(FILE *stream, const char *format, ...) 其中,stream 是指向 FILE 对象的指针,用于...

  • C++ strncpy()实例讲解

    strncpy()函数是C++中的字符串拷贝函数,用于将一个字符串的一部分拷贝到另一个字符串中。
    strncpy()函数的声明如下:
    char* strncpy(char* destinati...

  • C# WinForm 设置DataGridView选中指定行

    要设置DataGridView选中指定行,可以使用以下代码:
    // 设置DataGridView的SelectionMode为FullRowSelect,以确保选中整行
    dataGridView1.SelectionMo...

  • C++ vector::reserve()实例讲解

    vector::reserve()是C++标准库中vector容器的一种成员函数,用于预留vector的存储空间。它的作用是为了避免不必要的重新分配内存操作,提高程序的性能。
    ve...

  • r语言中怎么实现多图合并操作

    在R语言中,可以使用par()函数和layout()函数来实现多图合并操作。 使用par()函数设置绘图参数,例如设置布局网格的列数和行数。 par(mfrow=c(2,2)) # 设置布局为...

  • C#中怎么定义和调用方法

    在C#中,可以使用关键字"void"来定义一个方法,其语法如下:
    访问修饰符 返回值类型 方法名(参数列表)
    { // 方法体
    } 例如,定义一个简单的方法来...

  • linux中where命令的用法是什么

    在Linux中,没有where命令。可能你是在询问如何查找命令的路径,这可以通过which命令来实现。
    要查找特定命令的路径,可以在终端中输入以下命令:
    whi...

  • r语言lm函数的用法是什么

    在R语言中,lm()函数用于拟合线性回归模型。其基本语法如下:
    lm(formula, data) 其中,formula是一个公式对象,用来指定线性回归模型的形式,例如 “y ~ x...