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;
fc
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 tl =
new ColorTriangle("синий", "прямоугольный", 8.0, 12.0); ColorTriangle t2 =
new ColorTriangle("красный", "равнобедренный", 2.0, 2.0);
Console.WriteLine("Сведения об объекте tl: "); tl.ShowStyle; tl. ShowDinv ; tl.ShowColor ;
Console .WriteLine ("Площадь равна " + tl.AreaO);
Console.WriteLine ;
Console.WriteLine("Сведения об объекте t2: "); t2.ShowStyle; t2.ShowDim; t2.ShowColor ;
Console.WriteLine("Площадь равна " + t2.Area);
}
}
При выполнении этой программы получается следующей результат.
Сведения об объекте tl:
Треугольник прямоугольный Ширина и высота равны 8 и 12 Цвет синий Площадь равна 48
Сведения об объекте t2:
Треугольник равнобедренный Ширина и высота равны 2 и 2 Цвет красный Площадь равна 2
Благодаря наследованию в классеColorTriangleмогут использоваться определенные ранее классыTriangleиTwoDShape,к элементам которых добавляется лишь та информация, которая требуется для конкретного применения данного класса. В этом отчасти и состоит ценность наследования, поскольку оно допускает повторное использование кода.