如何从子类内访问基类?

时间:2014-08-31 21:35:56

标签: c#

我有一个名为BaseMonster的抽象类。这个“基础”类包含几个值,例如float dyingTime = 2,对于所有怪物子类都是相同的。但是因为有很多像这样的值,所以当你“新”怪物时我不想把它们传递给对象调用。

所以我的问题是:对于继承自BaseMonster的子类Ghoul,如何从BaseMonster中提取dyingTime的值?

编辑:为了澄清,我需要在Ghoul中拥有这些值,以便运行与常规BaseMonster不同的某些移动计算。

1 个答案:

答案 0 :(得分:0)

你应该研究继承的概念(BaseMonster是Ghoul的基类)和访问修饰符,它们管理从哪里可以访问哪些字段,方法和属性。

您可以找到所有访问修饰符here

另见这个简单的例子:

public class Base
{
    private float a;
    protected float b;
    public float c;

}


public class Sub : Base
{
    public void DoSomething()
    {
       float x = base.a; // Error cannot access private member a

       // Note that putting base before b and c here is optional
       // though it does help with naming conflicts 
       // if Sub would also have a member b you could differentiate the two
       // using this.b and base.b
       float y = base.b; // Works
       float z = base.c; // Works
    }
}