double pri_width; // теперь это закрытая переменная double pri_height; // теперь это закрытая переменная
// Свойства ширины и высоты двумерного объекта, 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 {
public string Style; // тип треугольника
// Возвратить площадь треугольника, public double Area() {
return Width * Height / 2;
}
// Показать тип треугольника, public void ShowStyleO {
Console.WriteLine('Треугольник ' + Style);
}
}
class Shapes2 {
static void Main() {
Triangle tl = new Triangle ();
Triangle t2 = new Triangle ();
tl.Width = 4.0;
tl.Height = 4.0;
tl.Style = 'равнобедренный';
t2.Width = 8.0;
t2.Height = 12.0;
t2.Style = 'прямоугольный';
Console.WriteLine('Сведения об объекте tl: '); tl.ShowStyle(); tl.ShowDim();
Console . WriteLine ('Площадь равна ' + tl.AreaO);
Console.WriteLine ();
Console.WriteLine('Сведения об объекте t2: '); t2.ShowStyle(); t2.ShowDim();
Console.WriteLine('Площадь равна ' + t2.Area());
}
}
В этом варианте свойства Width и Height предоставляют доступ к закрытым членам pri_width и pri_height класса TwoDShape, в которых фактически хранятся значения ширины и высоты двумерного объекта. Следовательно, значения членов pri_width и pri_height класса TwoDShape могут быть установлены и получены с помощью соответствующих открытых свойств, несмотря на то, что сами эти члены по-прежнему остаются закрытыми.
Базовый и производный классы иногда еще называют
