我可以为您解释下“C#继承与多态使用示例”的完整攻略。
标题
标题是标识文章主题的必要元素,我们可以通过#符号来对标题进行标注,例如:
# C#继承与多态使用示例
继承
在 C# 中,类可以通过继承从另一个类中获得其成员。继承的语法为:
class SubClass : SuperClass
{
//子类成员
}
在此示例中,SubClass
会从 SuperClass
中继承所有成员。通过继承,SubClass
就可以使用 SuperClass
的成员,而不需要再次编写相同的代码。
多态
多态是指使用不同的方式来呈现同样的事物。在面向对象编程中,多态性是指使用不同的子类对象来呈现同一个父类的行为。C# 中实现多态的方式是通过抽象类和接口。
示例一
假设有一个动物类,包含 Eat
和 Drink
方法。我们通过继承来实现两个类:狗和猫类。
class Animal
{
public virtual void Eat()
{
Console.WriteLine("I am eating");
}
public virtual void Drink()
{
Console.WriteLine("I am drinking");
}
}
class Dog : Animal
{
public override void Eat()
{
Console.WriteLine("I am a dog, I eat meat");
}
}
class Cat : Animal
{
public override void Drink()
{
Console.WriteLine("I am a cat, I drink milk");
}
}
在这个示例中,Dog
通过继承 Animal
类来获得 Eat
和 Drink
方法,而猫类仅继承了 Drink
方法。我们可以使用多态性来测试这两个类的行为:
Dog dog = new Dog();
Cat cat = new Cat();
Animal[] animals = new Animal[] {dog, cat};
foreach (Animal animal in animals)
{
animal.Eat();
animal.Drink();
}
运行后的结果如下:
I am a dog, I eat meat
I am drinking
I am eating
I am a cat, I drink milk
正如预期的那样,狗类只重写了 Eat
方法,而猫类只重写了 Drink
方法。在多态性中,子类实例可以用父类接收,这也是实现多态性的重要部分。
示例二
接下来我们通过接口实现多态性:
interface ICompute
{
int Compute(int num1, int num2);
}
class Add : ICompute
{
public int Compute(int num1, int num2)
{
return num1 + num2;
}
}
class Subtract : ICompute
{
public int Compute(int num1, int num2)
{
return num1 - num2;
}
}
这个示例实现了一个计算器接口 ICompute
,同时定义了两个类用于实现计算器接口。这两个类通过实现 ICompute
接口,可以在类里面实现 Compute
方法。
我们使用这个接口和实现类来完成不同的计算操作:
ICompute add = new Add();
ICompute subtract = new Subtract();
Console.WriteLine(add.Compute(1, 2));
Console.WriteLine(subtract.Compute(2, 1));
输出结果:
3
1
通过实现接口,我们可以使用相同的方法名来实现不同的功能。这种方式和继承是不同的,但是都可以实现多态性。
小结
C# 中的继承和多态性是重要的面向对象编程概念。我们可以使用继承来从其他类中获取成员。我们也可以通过接口来实现多态性。多态性是指使用不同的子类对象来呈现同一个父类的行为,这个特性让面向对象编程变得简单而直接。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#继承与多态使用示例 - Python技术站