Объектно-ориентированное программирование на С#. Андрианова А.А - 107 стр.

UptoLike

107
b = coef[1];
c = coef[2];
break;
case 2:
a = 0.0;
b = coef[0];
c = coef[1];
break;
case 1:
a = 0.0;
b = 0.0;
c = coef[0];
break;
default:
throw new Exception("Данный набор
коэффициентов не определяет
рассматриваемые типы уравнений ");
}
if (a == 0)
if (b == 0)
return new Equation_0(c);
else
return new Equation_1(b, c);
else
return new Equation_2(a, b, c);
}
// виртуальный метод печати результата
// решения уравнения
virtual public void PrintSolution()
{
Console.WriteLine("Уравнение еще не решено");
}
}
. . .
}
Создание объектов абстрактного класса невозможно, поэтому для
создания объектов уравнений различных типов будем использовать метод
CreateEquation().
class Program
{
static void Main(string[] args)
{
try
{
// создание объекта класса Equation_2 и вызов
// виртуального метода решения уравнения через
// ссылку на базовый класс Equation
Equation e = Equation.CreateEquation(1, -4, 4);
e.Solve();
                       b = coef[1];
                       c = coef[2];
                       break;
                    case 2:
                       a = 0.0;
                       b = coef[0];
                       c = coef[1];
                       break;
                    case 1:
                       a = 0.0;
                       b = 0.0;
                       c = coef[0];
                       break;
                    default:
                       throw new Exception("Данный набор
                              коэффициентов не определяет
                              рассматриваемые типы уравнений ");
                  }
                  if (a == 0)
                     if (b == 0)
                        return new Equation_0(c);
                     else
                        return new Equation_1(b, c);
                  else
                     return new Equation_2(a, b, c);
              }

              // виртуальный метод печати результата
              // решения уравнения
              virtual public void PrintSolution()
              {
                 Console.WriteLine("Уравнение еще не решено");
              }
          }
      .       .     .
  }

     Создание объектов абстрактного класса невозможно, поэтому для
создания объектов – уравнений различных типов будем использовать метод
CreateEquation().

   class Program
   {
      static void Main(string[] args)
      {
         try
         {
             // создание объекта класса Equation_2 и вызов
             // виртуального метода решения уравнения через
             // ссылку на базовый класс Equation
             Equation e = Equation.CreateEquation(1, -4, 4);
             e.Solve();
                                                                   107