// Конструктор для класса Triangle, public Triangle(string s, double w, double h) : base (w, h, "треугольник") {
Style = s;
}
// Сконструировать равнобедренный треугольник, public Triangle(double x) : base(x, "треугольник") {
Style = "равнобедренный";
}
// Сконструировать копию объекта типа Triangle, public Triangle(Triangle ob) : base(ob) {
Style = ob.Style;
}
// Переопределить метод Area() для класса Triangle, public override double Area() { return Width * Height / 2;
}
// Показать тип треугольника, public void ShowStyle() {
Console.WriteLine("Треугольник " + Style);
}
// Сконструировать квадрат, public Rectangle(double x) : base(x, "прямоугольник") { }
// Сконструировать копию объекта типа Rectangle, public Rectangle(Rectangle ob) : base(ob) { }
// Возвратить логическое значение true, если // прямоугольник окажется квадратом, public bool IsSquareO {
if(Width == Height) return true; return false;
}
// Переопределить метод Area() для класса Rectangle, public override double Area()
}
}
class DynShapes {
static void Main() {
TwoDShape[] shapes = new TwoDShape[5] ;
shapes[0] = new Triangle("прямоугольный", 8.0, 12.0); shapes[1] = new Rectangle(10);
shapes[2] = new Rectangle(10, 4);
shapes[3] = new Triangle(7.0);
shapes[4] = new TwoDShape(10, 20, "общая форма");
for (int i=0; i < shapes.Length; i++) {
Console.WriteLine("Объект — " + shapes[i].name);
Console.WriteLine("Площадь равна " + shapes[i].Area());
Console.WriteLine();
}
}
}
При выполнении этой программы получается следующий результат.
Объект — треугольник Площадь равна 48
Объект — прямоугольник Площадь равна 100
Площадь равна 40
Объект — треугольник Площадь равна 24.5
Объект — общая форма
Метод Area() должен быть переопределен Площадь равна 0