Наследование (изменение приватного поля родительского класса) - C#
Формулировка задачи:
Только начал изучать ООП, и сразу не могу разобраться с наследованием. Вот написал прогу, 2 класса, один - наследует от 1 класса. При попытке изменить значение приватного поля accomulate у родительского класса - ошибки нет, но значение поля не меняется, что показывает проверка с выводом его в консоль, в чем может быть дело?
В последних строках поле accomulator при вызове метода умножения не изменяется и выводится то же самое число
class Calc { private int accomulator; public void Init(int n) { accomulator = n; } public int Get { get { return accomulator; } set { accomulator = value; } } public void Add(int n) { accomulator += n; } public void Sub(int n) { accomulator -= n; } } class OtherCalc : Calc //наследуем класс Calc { public void Mul(int n) { Get *= n; //умножаем, но значение поля не меняется } } class Program { static void Main(string[] args) { int zn; Calc calc = new Calc(); Console.WriteLine("Введите исходное значение поля accomulator"); calc.Init(Convert.ToInt32(Console.ReadLine())); //считали значение с консоли и записали его в accomulator zn = calc.Get; //получили значение accomulator Console.WriteLine("Значение переменной zn - {0}",zn); OtherCalc othercalc = new OtherCalc(); //создаем экземпляр класса OtherCalc Console.WriteLine("Введите значение, на которое нужно умножить accomulator:"); othercalc.Mul(Convert.ToInt32(Console.ReadLine())); Console.WriteLine("Измененный знак : {0}", calc.Get); //тут выводит то же самое число, не умноженное на n Console.ReadKey(); } }
Решение задачи: «Наследование (изменение приватного поля родительского класса)»
textual
Листинг программы
static void Main(string[] args) { Console.WriteLine("Введите исходное значение поля accomulator"); OtherCalc othercalc = new OtherCalc(Convert.ToInt32(Console.ReadLine())); Console.WriteLine("Введите значение, на которое нужно умножить accomulator:"); othercalc.Mul(Convert.ToInt32(Console.ReadLine())); Console.WriteLine("Измененный знак : {0}", othercalc.Get); Console.ReadKey(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д