C#クラスの継承と親コントラクタの呼び出し方法 一例

2009/10/19 18:12Update
TAGS: C# | 継承 | クラス | コントラクタ | base

C#のクラス継承例(継承、親コントラクタの呼び出し方法)

例:
using System;
using System.Collections.Generic;
using System.Text;

namespace Test
{
    //親クラスとなる Aクラスの定義
    class A
    {
        private string value;

        //パラメータなしのコントラクタ定義
        public A()
        {
            System.Console.WriteLine("A().");
            this.value = "****";
        }

        //パラメータありのコントラクタ定義
        public A(string value)
        {
            System.Console.WriteLine("A(string).");
            this.value = value;
        }

        //メソッド定義
        public void Do()
        {
            System.Console.WriteLine("A.Do().");
        }
    }

    //サブクラスとなる Bクラスの定義
    class B:A
    {
        //親コンストラクタの呼び出す
        public B()
            : base()
        {
            System.Console.WriteLine("B().");
        }

        //親コンストラクタの呼び出す(パラメータあり)
        public B(string value)
            : base(value)
        {
            System.Console.WriteLine("B(string).");
        }
    }
}


NUnitテストケース例:
using NUnit.Framework;

namespace Test
{
    [TestFixture]
    public class TestExtends
    {
        [Test]
        public void Extends()
        {
            B b1 = new B();
            b1.Do();

            B b2 = new B("TEST");
            b2.Do();
        }
    }

}


実行結果:
A().
B().
A.Do().
A(string).
B(string).
A.Do().

有关作者
Syboos.jp編集長システム設計や開発、保守運営などを行ってます。オープンソース技術に興味があります。

Sponsored Link


Comments