Использование метода между двумя классами - PullRequest
0 голосов
/ 29 апреля 2018

вот мой код. Я хочу увеличить значение скорости с помощью метода a.Quest(). Этот метод в первом классе. А второй класс наследует от первого класса.

Метод увеличения - во втором классе, но я использую его в первом классе. Это то, что я пытаюсь сделать. Я не хочу писать так много кода в основном.

Однако при запуске программы значения a.Speed и b.Speed равны нулю. Я ожидаю, что один из них будет 10. Как я могу это исправить?

    interface IElektroBeyin
    {
        int Speed{ get; set; } // Hız kontrolü
    }
    class AA : IElektroBeyin
    {
        public int Speed { get; set; }
        public virtual void GetFaster() { }
        public virtual void GetSlower() { }
        public  void Quest()
        {
            int x;                
            Console.WriteLine("Want to get faster ? 1- Yes");
            x = Console.Read();
            if (x == 1)
            {
                GetFaster();
            }
        }
    }
    class BB : AA
    {
        public override void GetFaster()
        {
               Speed += 10;
        }
        public override void GetSlower()
        {
                Speed -= 10;
        }
    }

    static void Main(string[] args)
    {
        BB b = new BB();
        AA a = new AA();
        a.Quest();
        Console.WriteLine(b.Speed);
        Console.WriteLine(a.Speed);
        Console.ReadLine();
    }
  }
}

1 Ответ

0 голосов
/ 29 апреля 2018
AA a = new AA();
a.Quest();

AA.Quest() вызывает AA.GetFaster(), но этот метод пуст. Вот почему ничего не происходит, когда это называется. BB.GetFaster() не вызывается, поскольку он находится в производном классе AA. Вы, вероятно, хотите, чтобы все было наоборот.

Кроме того, чтобы получить число, которое вводит пользователь, вы не можете использовать возвращаемое значение Console.Read(). Используйте int.Parse(Console.ReadLine()) или что-то подобное.

...