c#采用面向对象的编程思想,写一个有关游戏的代码,类、继承、封装、多态都要涉及到,满足接口,功能完善使用控制台应用
时间: 2024-09-30 10:12:24 浏览: 30
在C#中,我们可以创建一个简单的角色扮演游戏(RPG)作为例子,展示面向对象的编程特性。我们将定义一个基础的游戏类`Game`, 然后通过继承创建两个类型的英雄角色,如`Mage`(法师)和`Warrior`(战士),并利用封装和多态。
首先,我们定义一个基础的`Character`类,包含基本属性(例如生命值、攻击力)和公共方法:
```csharp
public abstract class Character
{
public int Health { get; set; }
public int AttackPower { get; }
public void TakeDamage(int damage)
{
Health -= damage;
if (Health <= 0) Console.WriteLine("角色死亡!");
}
// 公共方法,体现多态
public abstract void PerformAction();
}
```
接着,我们创建`Mage`和`Warrior`这两个特定的角色,它们都从`Character`类继承,并重写`PerformAction()`方法来体现多态:
```csharp
public class Mage : Character
{
public override void PerformAction()
{
Console.WriteLine("法师施放火球术...");
}
}
public class Warrior : Character
{
public override void PerformAction()
{
Console.WriteLine("战士挥舞大剑...");
}
}
```
现在我们可以创建一个`Game`类,它包含一个`Character`列表,并在游戏循环中处理玩家交互:
```csharp
class Game
{
private List<Character> characters;
public Game()
{
characters = new List<Character>
{
new Mage(),
new Warrior()
};
}
public void Play()
{
foreach (var character in characters)
{
character.PerformAction();
}
// 随机对角色造成伤害
var random = new Random();
int damage = random.Next(1, 10);
foreach (var character in characters)
{
character.TakeDamage(damage);
}
}
}
```
在这个游戏中,`Game`类体现了封装,因为它隐藏了内部的字符列表和具体的细节。同时,当调用`PerformAction()`方法时,会根据角色的不同自动选择相应的动作,这就是多态的应用。
阅读全文