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

UptoLike

98
// базовый класс для определения уравнений
public class Equation
{
protected const int infinity = Int32.MaxValue;
protected int count = -1;
public Equation(){}
// виртуальный метод решения уравнения
public virtual void Solve()
{
PrintSolution();
}
// виртуальный метод печати результата решения уравнения
public virtual void PrintSolution()
{
Console.WriteLine("Уравнение еще не решено,
поскольку не определен тип
уравнения!!!");
}
}
Тогда класс-наследник, описывающий уравнения нулевого порядка,
будет содержать методы, переопределяющие виртуальные методы базового
класса:
// производный класс для определения уравнений 0-ого порядка
class Equation_0: Equation
{
// уравнение 0-ого порядка определяется только
// коэффициентом с
protected double c;
// конструктор
public Equation_0(double c1)
{
c = c1;
}
// переопределенный виртуальный метод решения уравнения
public override void Solve()
{
if (c == 0)
count = infinity;
else
count = 0;
PrintSolution();
}
     // базовый класс для определения уравнений
     public class Equation
     {
        protected const int infinity = Int32.MaxValue;
        protected int count = -1;

         public Equation(){}

         // виртуальный метод решения уравнения
         public virtual void Solve()
         {
            PrintSolution();
         }

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

     Тогда класс-наследник, описывающий уравнения нулевого порядка,
будет содержать методы, переопределяющие виртуальные методы базового
класса:

     // производный класс для определения уравнений 0-ого порядка
     class Equation_0: Equation
     {
        // уравнение 0-ого порядка определяется только
        // коэффициентом с
        protected double c;

         // конструктор
         public Equation_0(double c1)
         {
            c = c1;
         }

         // переопределенный виртуальный метод решения уравнения
         public override void Solve()
         {
            if (c == 0)
               count = infinity;
            else
               count = 0;
            PrintSolution();
         }




98