, задавая собственную реализацию этого метода. Родительский метод можно было бы определить как виртуальный, переопределив его у потомка, но я не стал трогать код родительского класса. К классу добавился еще один запрос, возвращающий значение поля sum. Некоторые изменения в уже существующем проекте пришлось-таки сделать, изменив статус доступа у полей. А все потому, что в целях экономии текста кода я не стал закрывать поля и вводить, как положено, открытые процедуры-свойства для закрытых полей. Проведем теперь эксперименты с новыми вариантами списков, допускающих суммирование элементов: public void TestSum() { SumList<string, int> list1 = new SumList<string, int>(new IntCalc()); list1.add("Петр", 33); list1.add("Павел", 44); Console.WriteLine("sum= {0}", list1.Sum()); SumList<string, double> list2 = new SumList<string, double> (new DoubleCalc()); list2.add("Петр", 33.33); list2.add("Павел", 44.44); Console.WriteLine("sum= {0}", list2.Sum()); SumList<string, string> list3 = new SumList<string, string> (new StringCalc()); list3.add("Мама", " Мама мыла "); list3.add("Маша", "Машу мылом!"); |