抱歉,我不知道如何用几个单词写下我的问题,所以我什至无法正确谷歌它。
问题是:我有抽象类链。
AbEntity with abstract properties.
AbHero and AbEnemy with realization of AbEntity's properties and with it's own abstract properties
Non-abstract classes.
出于某种原因,非抽象类应该实现 AbEntity 的抽象属性。为什么他们不能从父母那里拿走它(AbHero & AbEnemy)?
我不明白如何在没有抽象类的情况下制作这个架构,但我不想用返回基础编写 7 个额外的属性。道具名称;在每个非抽象类中:(
界面不起作用,因为我需要使用字段。(这是团结)
出于某种原因,非抽象类应该实现 AbEntity 的抽象属性。
事实并非如此,如果他们继承了 abHero 并且 abHero 已经实现了抽象的 AbEntity 属性,那么就没有必要再次实现它们,看看这个例子:
public abstract class a
{
public abstract int value{ get; }
}
public abstract class b : a
{
public abstract int valueb { get; }
public override int value
{
get { return 1; }
}
}
public class c : b
{
public override int valueb
{
get { return 2; }
}
}
你的问题不清楚,所以我只是告诉你如何声明一个 3 级层次结构。
-
具有一个抽象属性的抽象基类:
abstract class AbEntity { public abstract int PropertyEntity { get; } }
-
一个派生的抽象类,其中包含
PropertyEntity
的实现和另一个抽象属性。abstract class AbHero : AbEntity { public override int PropertyEntity { get { /* ... */ } } public abstract string PropertyHero { get; } }
-
实现其余抽象属性的非派生类(只是
PropertyHero
,而不是PropertyEntity
)class NonAbstractHero : AbHero { public override string PropertyHero { get { /* ... */ } } }