2014年6月6日金曜日

開発環境

Head First C#―頭とからだで覚えるC#の基本 (Andrew Stellman (著)、Jennifer Green (著)、佐藤 嘉一 (監修)、木下 哲也 (翻訳)、オライリージャパン)の5章(継承: オブジェクトの系図)、エクササイズ(p.198)を解いてみる。

エクササイズ(p.198)

コード

Program.cs

using System;

namespace WindowsFormsApplication1
{
    static class Program
    {
        /// <summary>
        /// アプリケーションのメイン エントリ ポイントです。
        /// </summary>
        [STAThread]
        static void Main()
        {
            A a = new A();
            B b = new B();
            C c = new C();
            A a2 = new C();
            string q = "";

            // 出力の2行目
            q += b.m1();
            q += c.m2();
            q += a.m3();

            q += "\n";
            // 出力の4行目
            q += c.m1();
            q += c.m2();
            q += c.m3();

            q += "\n";
            // 出力の7行目
            q += a.m1();
            q += b.m2();
            q += c.m3();

            q += "\n";
            // 出力の4行目
            q += a2.m1();
            q += a2.m2();
            q += a2.m3();

            System.Windows.Forms.MessageBox.Show(q);
        }
    }
    class A
    {
        public int ivar = 7;
        public virtual string m1()
        {
            return "Aのm1, ";
        }
        public string m2()
        {
            return "Aのm2, ";
        }
        public virtual string m3()
        {
            return "Aのm3, ";
        }
    }

    class B : A
    {
        public override string m1()
        {
            return "Bのm1, ";
        }
    }

    class C : B
    {
        public override string m3()
        {
            return "Cのm3, " + (ivar + 6);
        }
    }
}

0 コメント:

コメントを投稿