whtmst
@whtmst
https://band.link/whtmst

C# наследование. Нужна ваша помощь?

Добрый день господа. Я недавно начал изучать язык и вообще программирование. Вот дошел до наследования. Возможно вопрос из ряда глупых, так что сильно не ругайтесь.

Вот код
class Program
    {
        static void Main(string[] args)
        {
            B b = new B(); // Делаю ссылку на класс B
            
            Console.WriteLine(b.new_age); // Вывожу в консоль переменную new_age из класса B
            Console.ReadKey();
        }
    }

    class A 
    {
        protected int age = 20; // Создаю протектед переменную со значением 20
    }

    class B : A // Создаю класс B который наследуется от класса A
    {
        public int new_age; // Создаю публичную переменную new_age

        public void newMethod() // Создаю публичный метод
        {
            new_age = age; // В методе говорю что новая переменная new_age равна переменной age из класса А
        }                
    }


И вот вопрос, почему в консоль выводится значение 0, а не 20. Ведь в классе B я дал понять что переменная new_age равна переменной age из класса А, то есть она принимает значение 20. И вызывая ее в методе Main в консоле, она ведь должна показать не 0, а 20.

Можно вкратце о том чего я не понял. :(
  • Вопрос задан
  • 208 просмотров
Решения вопроса 1
@kvasek
Вы не вызвали newMethod, и значение не присвоилось.
static void Main(string[] args)
        {
            B b = new B(); // Делаю ссылку на класс B
            <b>b.newMethod();</b>

            Console.WriteLine(b.new_age); // Вывожу в консоль переменную new_age из класса B
            Console.ReadKey();
        }


Предполагаю что newMethod вы спутали с конструктором.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы