using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Area_calc_App { class Program { class Area { protected float vertical_length; protected float horizontal_length; public Area (float vertical, float horizontal) { this.vertical_length = vertical; this.horizontal_length = horizontal; } public virtual float Calc_area() { return this.vertical_length * this.horizontal_length; } public virtual void areaShow() { } } class Square : Area { public Square(float vertical, float horizontal) : base(vertical, horizontal) { } public override float Calc_area() { return base.Calc_area(); } public override void areaShow() { Console.WriteLine("四角形の面積(S={0})を表示します。", this.Calc_area()); } } class Triangle : Area { public Triangle(float bottom, float height):base(bottom,height) { } public override float Calc_area() { return base.Calc_area() / 2.0F; } public override void areaShow() { Console.WriteLine("三角形の面積(S={0})を表示します。", this.Calc_area()); } } class Trapezoid : Area { public Trapezoid(float Upperbottom, float Lowerheight, float height) : base(Upperbottom + Lowerheight, height) { } public override float Calc_area() { return base.Calc_area() / 2.0F; } public override void areaShow() { Console.WriteLine("台形の面積(S={0})を表示します。", this.Calc_area()); } } static void Main(string[] args) { /* Area a1 = new Square(5.0F, 10.0F); a1.areaShow(); Area a2 = new Triangle(5.0F, 10.0F); a2.areaShow(); Area a3 = new Trapezoid(5.0F,5.0F,10.0F); a3.areaShow(); */ List a = new List(); a.Add(new Square(5.0F, 10.0F)); a.Add(new Triangle(5.0F, 10.0F)); a.Add(new Trapezoid(5.0F, 5.0F, 10.0F)); foreach (Area s in a) { s.areaShow(); } return; } } }