Абстрактные классы. Доступ к переменным - C#
Формулировка задачи:
Всем привет. Столкнулся с такой проблемой.
У меня есть абстрактный класс
Я создаю дочерние классы
В основной программе я создаю список всех героев.
Вопрос вот в чём, есть ли какой нибудь способ получить доступ к полям ДОЧЕРНЕГО от Hero класса: у супермэна power, у бэтмена к money. Получить через список allHeroesInGame?
Типа
Подскажите способ как это вообще можно реализовать?
Спасибо!
public abstract class Hero{ public abstract void UpgradeHero (); }
public class Superman:Hero{ public int power; // вот сюда обратить внимание, эти данные только у Супермэна public abstract void UpgradeHero (){ power += 1; } }
public class Batman:Hero{ public float money; // вот сюда обратить внимание, эти данные только у Бэтмена public bool isHaveRobin; public abstract void UpgradeHero (){ money += 1 * 100f; isHaveRobin = true; } }
void Main() { List<Hero> allHeroesInGame = new List<Hero>(); allHeroesInGame.Add( new Superman() ); allHeroesInGame.Add( new Batman() ); // я точно знаю что индекс 0 = супермэн, индекс 1 = бэтмен // вот тут и проблема. Как это можно реализовать, если это вообще возможно int powerSuperman = allHeroesInGame[ 0 ].power; }
int сила_супермэна = allHeroesInGame[ 0 ].power float состояние_бэтмена = allHeroesInGame[ 1 ].money bool есть_робин = = allHeroesInGame[ 1 ].isHaveRobin;
Решение задачи: «Абстрактные классы. Доступ к переменным»
textual
Листинг программы
Superman super = allHeroesInGame[0] as Superman; int powerSuperman = super.power;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д