创建控制台应用程序,通过继承和虚写的方法来实现多态功能
时间: 2024-05-09 12:19:03 浏览: 121
以下是一个C#控制台程序的示例,通过继承和虚方法来实现多态功能:
```
using System;
namespace PolymorphismExample
{
// 基类 Animal
class Animal
{
// 虚方法 Speak,子类可以重写该方法
public virtual void Speak()
{
Console.WriteLine("I am an animal.");
}
}
// 派生类 Dog,继承自 Animal
class Dog : Animal
{
// 重写虚方法 Speak
public override void Speak()
{
Console.WriteLine("I am a dog. Woof!");
}
}
// 派生类 Cat,继承自 Animal
class Cat : Animal
{
// 重写虚方法 Speak
public override void Speak()
{
Console.WriteLine("I am a cat. Meow!");
}
}
class Program
{
static void Main(string[] args)
{
// 创建 Animal 类型的对象
Animal animal = new Animal();
// 调用 Speak 方法,输出 "I am an animal."
animal.Speak();
// 创建 Dog 类型的对象
Dog dog = new Dog();
// 调用 Speak 方法,输出 "I am a dog. Woof!"
dog.Speak();
// 创建 Cat 类型的对象
Cat cat = new Cat();
// 调用 Speak 方法,输出 "I am a cat. Meow!"
cat.Speak();
Console.ReadLine();
}
}
}
```
输出:
```
I am an animal.
I am a dog. Woof!
I am a cat. Meow!
```
在上面的示例中,Animal 类是一个基类,它有一个虚方法 Speak,该方法可以被子类重写。Dog 和 Cat 都是继承自 Animal 的派生类,它们分别重写了 Speak 方法。在程序中创建了一个 Animal 类型的对象,以及一个 Dog 类型的对象和一个 Cat 类型的对象。调用它们的 Speak 方法时,分别输出对应的字符串。这就是多态的体现:同一个方法在不同的对象上表现出不同的行为。
阅读全文