Страница 160 из 502
<b>// Передать ссылку на объект производного класса </b>
<b>// переменной ссылки на объект базового класса.</b>
<b>using System;</b>
<b>class TwoDShape { </b>
<b> double pri_width;</b>
<b> double pri_height;</b>
<b> // Конструктор по умолчанию,</b>
<b> public TwoDShape() {</b>
<b> Width = Height = 0.0;</b>
<b> }</b>
<b> // Конструктор для класса TwoDShape.</b>
<b> public TwoDShape(double w, double h) {</b>
<b> Width = w;</b>
<b> Height = h;</b>
<b> }</b>
<b> // Сконструировать объект равной ширины и высоты,</b>
<b> public TwoDShape(double x) {</b>
<b> Width = Height = x;</b>
<b> }</b>
<b> // Сконструировать копию объекта TwoDShape.</b>
<b> public TwoDShape(TwoDShape ob) {</b>
<b> Width = ob.Width;</b>
<b> Height = ob.Height;</b>
<b> }</b>
<b> // Свойства ширины и высоты объекта,</b>
<b> public double Width {</b>
<b> get { return pri_width; }</b>
<b> set { pri_width = value < 0 ? -value : value; }</b>
<b> }</b>
<b> public double Height {</b>
<b> get { return pri_height; }</b>
<b> set { pri_height = value < 0 ? -value : value; }</b>
<b> }</b>
<b> public void ShowDim() {</b>
<b> Console.WriteLine("Ширина и высота равны " +</b>
<b> Width + " и " + Height);</b>
<b> }</b>
<b>}</b>
<b>// Класс для треугольников, производный от класса TwoDShape. </b>
<b>class Triangle : TwoDShape {</b>
<b> string Style;</b>
<b> // Конструктор, используемый по умолчанию,</b>
<b> public Triangle() {</b>
<b> Style = "null";</b>
<b> }</b>
<b> // Конструктор для класса Triangle.</b>
<b> public Triangle(string s, double w, double h) : base(w, h) {</b>
<b> Style = s;</b>
<b> }</b>
<b> // Сконструировать равнобедренный треугольник,</b>
<b> public Triangle(double x) : base(x) {</b>
<b> Style = "равнобедренный";</b>
<b> }</b>
<b> // Сконструировать копию объекта типа Triangle,</b>
<b> public Triangle(Triangle ob) : base(ob) {</b>
<b> Style = ob.Style;</b>
<b> }</b>
<b> // Возвратить площадь треугольника,</b>
<b> public double Area() {</b>
<b> return Width * Height / 2;</b>
<b> }</b>
<b> // Показать тип треугольника,</b>
<b> public void ShowStyle() {</b>
<b> Console.WriteLine("Треугольник " + Style);</b>
<b> }</b>
<b>}</b>
<b>class Shapes7 {</b>
<b> static void Main() {</b>
<b> Triangle t1 = new Triangle("прямоугольный", 8.0, 12.0);</b>
<b> // Сделать копию объекта t1.</b>
<b> Triangle t2 = new Triangle (t1) ;</b>
<b> Console.WriteLine("Сведения об объекте t1: ");</b>
<b> t1.ShowStyle();</b>
<b> t1.ShowDim();</b>
<b> Console.WriteLine ("Площадь равна " + t1.Area());</b>
<b> Console.WriteLine();</b>
<b> Console.WriteLine("Сведения об объекте t2: ");</b>