C#で抽象クラスを作ってみよう。
●Program.cs
using System; using System.Collections.Generic; namespace AbstractMethod { class Program { static void Main(string[] args) { var list = new List<Figure>{ new Square("四角形",5.0,4.0), new Triangle("三角形",4.0,3.0) }; list.ForEach((v) =>{ Console.WriteLine($"横:{v.Width:F1},縦:{v.Height:F1},図形:{v.Name}の面積は{v.GetArea():F1}"); }); } } abstract class Figure { public string Name { get; set; } public double Width { get; set; } public double Height { get; set; } public Figure(string name,double width, double height) { this.Name = name; this.Width = width; this.Height = height; } //抽象メソッド public abstract double GetArea(); } class Square : Figure { public Square(string name,double width, double height) : base(name,width, height) { } public override double GetArea() { return this.Width * this.Height; } } class Triangle : Figure { public Triangle(string name,double width, double height) : base(name,width, height) { } public override double GetArea() { return this.Width * this.Height / 2; } } }
コメント