Я не могу получить доступ к публичной переменной в подклассе main? - PullRequest
0 голосов
/ 03 апреля 2012

Кто-нибудь может мне помочь?

Я делаю игру на XNA.

У меня есть класс GameObject, который действует как базовый класс для Character.class или Object.class

Там также Game.class

Я просто хотел спросить, у меня есть подкласс GameObject, который имеет открытую переменную с именем canJump.

По какой-то причине я могудаже не получить доступ к переменной.

У меня есть GameObject character = new Character();

Этот объект может легко получить доступ ко всем переопределенным функциям базового класса, но он не позволит мне использовать публичные переменные.

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Полиморфизм является ключевым словом здесь. Minitech верен, все, что знает компилятор, это GameObject, поэтому у вас есть доступ только к интерфейсу GameObjects. Вы можете использовать методы overidden, потому что они также являются частью интерфейса GameObjects, хотя во время выполнения вы фактически получите версию этого метода для персонажа. В своем коде вы можете делать такие вещи, как:

if(character is Character) //Character being the subclass
{
    (character as Character).DoSomeCharacterSpecificStuff;
}
1 голос
/ 03 апреля 2012

Ну, да, компилятор не знает, что GameObject на самом деле Character. Если у вас нет веской причины, просто используйте Character:

Character character = new Character();
...