2014年6月14日土曜日

開発環境

Head First C#―頭とからだで覚えるC#の基本 (Andrew Stellman (著)、Jennifer Green (著)、佐藤 嘉一 (監修)、木下 哲也 (翻訳)、オライリージャパン)の6章(インタフェースと抽象クラス: クラスに約束を守らせる)、プールパズル(p.257)を解いてみる。

プールパズル(p.257)

コード

Program.cs

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    class Of76 : Clowns
    {
        public override string Face
        {
            get
            {
                return "Of76";
            }
        }
        static void Main()
        {
            string result = "";
            Nose[] i = new Nose[3];
            i[0] = new Acts();
            i[1] = new Clowns();
            i[2] = new Of76();
            for (int x = 0; x < 3; ++x)
            {
                result += i[x].Ear() + " " + i[x].Face + "\n";
            }

            MessageBox.Show(result);
        }
    }
    interface Nose
    {
        int Ear();
        string Face { get; }
    }
    abstract class Picasso : Nose
    {
        string face;

        public Picasso(string face)
        {
            this.face = face;
        }

        public virtual string Face
        {
            get { return face; }
        }
        public virtual int Ear()
        {
            return 7;
        }
    }
    class Clowns : Picasso
    {
        public Clowns() : base("Clowns") { }
    }
    class Acts : Picasso
    {
        public Acts()
            : base("Acts") { }
        public override int Ear()
        {
            return 5;
        }
    }
}

0 コメント:

コメントを投稿