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

UptoLike

106
Такие методы называются абстрактными методами. При объявлении
такого метода следует указывать ключевое слово abstract
abstract void Method();
Если в классе определен хотя бы один абстрактный метод, то класс
является абстрактным и при его описании также указывается ключевое
слово abstract. Абстрактный класс не может использоваться для создания
объектов, поскольку не полностью определена его реализация. Его можно
применять только в качестве базового класса, переопределив в его потомках
абстрактные функции. Если в производном классе не будет переопределена
хотя бы одна абстрактная функция базового класса, то он также будет
абстрактным. При его описании ключевое слово abstract обязательно.
В программах можно создавать ссылки на абстрактный класс для
хранения адресов объектов классов-потомков.
Этот прием используем для иерархии классов различных типов
уравнений. Базовый класс Equation будет являться абстрактным в нем
будет определен абстрактный метод Solve(), поскольку абстрактное
уравнение решить нельзя. В дочерних классах этот метод определяется для
решения конкретных видов уравнений. Приведем определение базового
класса для этого случая.
namespace AbstarctClass
{
// абстрактный базовый класс уравнения
abstract public class Equation
{
protected const int infinity = Int32.MaxValue;
protected int count = -1;
// абстрактный метод решения уравнения
public abstract void Solve();
// метод создания объектов-наследников
public static Equation CreateEquation
(params double[] coef)
{
double a, b, c;
switch (coef.Length)
{
case 3:
a = coef[0];
Такие методы называются абстрактными методами. При объявлении
такого метода следует указывать ключевое слово abstract

      abstract void Method();


     Если в классе определен хотя бы один абстрактный метод, то класс
является абстрактным и при его описании также указывается ключевое
слово abstract. Абстрактный класс не может использоваться для создания
объектов, поскольку не полностью определена его реализация. Его можно
применять только в качестве базового класса, переопределив в его потомках
абстрактные функции. Если в производном классе не будет переопределена
хотя бы одна абстрактная функция базового класса, то он также будет
абстрактным. При его описании ключевое слово abstract обязательно.
     В программах можно создавать ссылки на абстрактный класс для
хранения адресов объектов классов-потомков.
     Этот прием используем для иерархии классов различных типов
уравнений. Базовый класс Equation будет являться абстрактным – в нем
будет определен абстрактный метод Solve(), поскольку абстрактное
уравнение решить нельзя. В дочерних классах этот метод определяется для
решения конкретных видов уравнений. Приведем определение базового
класса для этого случая.

      namespace AbstarctClass
      {
         // абстрактный базовый класс уравнения
         abstract public class Equation
         {

            protected const int infinity = Int32.MaxValue;

            protected int count = -1;

           // абстрактный метод решения уравнения
           public abstract void Solve();

           // метод создания объектов-наследников
           public static Equation CreateEquation
                                (params double[] coef)
           {
              double a, b, c;
              switch (coef.Length)
              {
                 case 3:
                    a = coef[0];

106