наследование

Наследование — создание новых классов из уже существующих, которые наследуют члены базового класса.
Множественное наследование в С# не возможно, в С++ — да.
Класс, который наследуется — базовый.
Класс, который его наследует — производный.
Если члены базового класса имеют модификатор private, то в производном классе они не доступны.
Если члены базового класса имеют модификатор protected, то для всех они не доступны, а в производном классе они доступны.
Если в базовом классе, конструктор принимает параметры, то в конструкторе производного класса они должны быть также отображены с помощью ключевого слова base, которое в данном аспекте выступает инициализатором базового класса.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • //базовый класс
  • class Counter {
  •  ushort showStart;
  •  ushort showEnd;
  •  public Counter(ushort arg0, ushort arg1) {
  •   showStart = arg0;
  •   showEnd = arg1;
  •  }
  •  public ushort ResulShow() {
  •   return (ushort)(showEnd - showStart);
  •  }
  • }
  •  
  • //производный класс
  • class Price : Counter {
  •  decimal price;
  •  /*инициализатором базового класса является ключевое слов base,
  •  в конструкторе производного класса указываем аргументы базового класса,
  •  затем аргументы производного класса, а в инициализаторе подтверждаем
  •  аргументы базового класса, но уже без объявления типа данных*/
  •  public Price(ushort arg0, ushort arg1, decimal arg2)
  •   : base(arg0, arg1) {
  •   price = arg2;
  •  }
  •  public decimal Sum() {
  •   return Math.Round((decimal)(ResulShow()*price), 2);
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   Console.WriteLine("оплата за электроэнергию\n");
  •   Console.Write("Введите начальные показания счетчика : ");
  •   ushort show_start = ushort.Parse(Console.ReadLine());
  •   Console.Write("Введите конечные показания счетчика  : ");
  •   ushort show_end = ushort.Parse(Console.ReadLine());
  •   Console.Write("Введите цену за 1 кВт/ч              : ");
  •   decimal price = decimal.Parse(Console.ReadLine());
  •   Price P = new Price(show_start, show_end, price);
  •   Console.WriteLine("Сумма за электроэнергию              : {0}", P.Sum());
  •  
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
оплата за электроэнергию

Введите начальные показания счетчика : 0
Введите конечные показания счетчика : 100
Введите цену за 1 кВт/ч : 0,3084
Сумма за электроэнергию : 30,84