読者です 読者をやめる 読者になる 読者になる

プログラミングでアイデアを具現化したい

あらゆるものを具現化するためにプログラミングを始めました。主にC#

継承の基本について

C#


独習C# 第3版より

継承の基本について
下記コード例では平面図形の幅、高さを保持するTwoDSharpeクラスと、
それを継承したTriangleクラスを使用しています。
TriangleクラスはTwoDSharpeクラスを継承しているため、
その全てを受け継いでおり、TwoDSharpeクラスで宣言している変数
「Width」、「Height」を直接参照できます。
f:id:tos5511:20160104234542j:plain
Triangleクラスの概念

using System;
class Shapes {
    static void Main() {
        Triangle t1 = new Triangle();
        Triangle t2 = new Triangle();

        t1.Width = 4.0;
        t1.Height = 4.0; 
        t1.Style = "isosceles";
        //←Triangleオブジェクトでは、TwoDShapeから継承したメンバを含めて、
        //Triangleクラスのすべてのメンバが利用可能

        t2.Width = 8.0;
        t2.Height = 12.0;
        t2.Style = "right";

        Console.WriteLine("Info for t1: ");
        t1.ShowStyle();
        t1.ShowDim();
        Console.WriteLine("Area is " + t1.Area());

        Console.WriteLine();

        Console.WriteLine("Info for t2: ");
        t2.ShowStyle();
        t2.ShowDim();
        Console.WriteLine("Area is " + t2.Area());
    }
}
// 平面図形用のクラス
class TwoDShape {
    public double Width;
    public double Height;

    public void ShowDim() {
        Console.WriteLine("Width and height are " +
                           Width + " and " + Height);
    }
}

// TriangleはTwoDShapeから派生している
class Triangle : TwoDShape { //←TriangleがTwoDShapeを継承。宣言方法に注意
    public string Style;

    public double Area() {
        return Width * Height / 2;
        //Triangleは、TwoDShapeのメンバを、
        //自身のメンバのように参照できる
    }

    public void ShowStyle() {
        Console.WriteLine("Triangle is " + Style);
    }
}

実行結果
f:id:tos5511:20160104214023j:plain


直近の人気記事
tos5511.hatenablog.com