2014-08-31 4 views
0

У меня есть абстрактный класс под названием BaseMonster. Этот «базовый» класс содержит несколько значений, таких как float dyingTime = 2, которые будут одинаковыми для всех подклассов монстров. Но поскольку таких ценностей много, я не хотел передавать их в вызов объекта, когда вы «новый» монстр.Как получить доступ к базовому классу из подкласса?

Так что мой вопрос: для подкласса Ghoul, который наследуется от BaseMonster, как я могу вытащить значение для dyingTime из BaseMonster?

EDIT: Чтобы уточнить, мне нужно иметь эти значения в Ghoul, чтобы выполнять определенные вычисления движения, отличные от обычного BaseMonster.

ответ

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 
    } 
} 
+0

Спасибо! У меня нет справочника или чего-либо еще для C#, поэтому мое обучение было очень ad hoc ... но это отличный пример. – steelfeathers

Смежные вопросы