C# 抽象类孙子继承
我正在尝试创建一个(相当笨拙的)小游戏,我遇到了一个问题。 我有一个类树,如下所示:C# 抽象类孙子继承,c#,class,inheritance,abstract,C#,Class,Inheritance,Abstract,我正在尝试创建一个(相当笨拙的)小游戏,我遇到了一个问题。 我有一个类树,如下所示: 实体 性格 玩家 敌人 静止的 楼梯 其他遭遇 现在我打算实现一个生成器,它应该基于一些简单的启发式方法生成一个映射,并通过实体构造函数将遭遇添加到一些分幅中。为此,我选择在我的Tile构造函数中使用“Entity e”参数 现在为了获得正确的类型,我在所有类中设置了一个虚拟方法来返回它们的确切类型。在Entity.cs和Character.cs中都是抽象的。但正如所料,继承抽象方法并使其再次抽
- 实体
- 性格
- 玩家
- 敌人
- 静止的
- 楼梯
- 其他遭遇
- 性格
TL;DR:如何在孙辈中继承抽象方法,而不在子代中声明。假设
字符
是抽象的,您根本不需要在字符
中实现它。请参见此示例:
public abstract class Parent
{
public abstract string Name {get;}
}
public abstract class Child : Parent
{
}
public class Grandchild: Child
{
public override string Name { get { return "Test"; } }
}
因为Child
也是抽象的,所以您不需要将任何方法重新声明为abstract
,因此它只需将实现需求传递给孙子
假设
字符
是抽象的,您根本不需要在字符
中实现它。请参见此示例:
public abstract class Parent
{
public abstract string Name {get;}
}
public abstract class Child : Parent
{
}
public class Grandchild: Child
{
public override string Name { get { return "Test"; } }
}
因为Child
也是抽象的,所以您不需要将任何方法重新声明为abstract
,因此它只需将实现需求传递给孙子