Читаем C# 4.0: полное руководство полностью

  public double Width {

    get { return pri_width; }

    set { pri_width = value < 0 ? -value : value; }

  }

  public double Height {

    get { return pri_height; }

    set { pri_height = value < 0 ? -value : value; }

  }

  public void ShowDim() {

    Console.WriteLine("Ширина и высота равны " +

          Width + " и " + Height);

  }

}

// Класс для треугольников, производный от класса TwoDShape.

class Triangle : TwoDShape {

  string Style; // закрытый член класса

/* Конструктор, используемый по умолчанию. Автоматически вызывает конструктор, доступный по умолчанию в классе TwoDShape. */

  public Triangle() {

    Style = "null";

  }

  // Конструктор.

  public Triangle(string s, double w, double h) : base(w, h) {

    Style = s;

  }

  // Сконструировать равнобедренный треугольник,

  public Triangle(double x) : base(x) {

    Style = "равнобедренный";

  }

  // Возвратить площадь треугольника,

  public double Area() {

    return Width * Height / 2;

  }

  // Показать тип треугольника,

  public void ShowStyle() {

    Console.WriteLine("Треугольник " + Style);

  }

}

// Расширить класс Triangle,

class ColorTriangle : Triangle {

  string color;

  public ColorTriangle(string c, string s,

                  double w, double h) : base(s, w, h) {

    color = c;

  }

  // Показать цвет треугольника,

  public void ShowColor() {

    Console.WriteLine("Цвет " + color);

  }

}

class Shapes6 {

  static void Main() {

    ColorTriangle t1 =

         new ColorTriangle("синий", "прямоугольный", 8.0, 12.0);

    ColorTriangle t2 =

         new ColorTriangle("красный", "равнобедренный", 2.0, 2.0);

    Console.WriteLine("Сведения об объекте t1: ");

    t1.ShowStyle();

    t1.ShowDim();

    t1.ShowColor();

    Console .WriteLine ("Площадь равна " + t1.Area());

    Console.WriteLine() ;

    Console.WriteLine("Сведения об объекте t2: ");

    t2.ShowStyle();

    t2.ShowDim();

    t2.ShowColor() ;

    Console.WriteLine("Площадь равна " + t2.Area());

  }

}

При выполнении этой программы получается следующей результат.

Сведения об объекте t1:

Треугольник прямоугольный

Ширина и высота равны 8 и 12

Цвет синий

Площадь равна 48

Сведения об объекте t2:

Треугольник равнобедренный

Ширина и высота равны 2 и 2

Цвет красный

Площадь равна 2

Благодаря наследованию в классе ColorTriangle могут использоваться определенные ранее классы Triangle и TwoDShape, к элементам которых добавляется лишь та информация, которая требуется для конкретного применения данного класса. В этом отчасти и состоит ценность наследования, поскольку оно допускает повторное использование кода.

Приведенный выше пример демонстрирует еще одно важное положение: ключевое слово base всегда обозначает ссылку на конструктор ближайшего по иерархии базового класса. Так, ключевое слово base в классе ColorTriangle обозначает вызов конструктора из класса Triangle, а ключевое слово base в классе Triangle — вызов конструктора из класса TwoDShape. Если же в иерархии классов конструктору базового класса требуются параметры, то все производные классы должны предоставлять эти параметры вверх по иерархии, независимо от того, требуются они самому производному классу или нет.

<p>Порядок вызова конструкторов</p>
Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных