【发布时间】:2020-11-29 09:56:29
【问题描述】:
我正在尝试为游戏创建一个类 heirachy,其中有一个 Item 类,它是游戏中所有项目的基类。问题是某些派生物品(如药水)可能无法实现该物品定义的某些抽象方法。
派生类可以实现“什么都不做”的抽象方法吗?
示例:https://dotnetfiddle.net/jJABN1
using System;
using System.Collections.Generic;
public abstract class Item
{
public abstract void Use();
}
public class Potion : Item
{
public override void Use()
{
// do nothing
return;
}
}
public class Sword : Item
{
public override void Use()
{
Console.WriteLine("Sword used!");
return;
}
}
public class Program
{
public static void Main()
{
List<Item> items = new List<Item>();
Item potion = new Potion();
Item sword = new Sword();
items.Add(potion);
items.Add(sword);
for (int i = 0; i < items.Count; i++)
{
Item item = items[i];
item.Use();
}
}
}
【问题讨论】:
标签: oop overriding abstract