Абстрактные классы. Доступ к переменным - 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д