2018年4月6日金曜日

開発環境

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

コード

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp14
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Mixed5 m = new Mixed5();
            m.Run();
        }
    }
    public 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, "; 
        }
    }
    public class B: A
    {
        public override string m1()
        {
            return "Bのm1, ";
        }
    }
    public class C : B
    {
        public override string m3()
        {
            return "Cのm3, " + (ivar + 6);
        }
    }
    public class Mixed5
    {
        public void Run()
        {
            A a = new A();
            B b = new B();
            C c = new C();
            A a2 = new C();
            string q = "";
            q += b.m1();
            q += c.m2();
            q += a.m3();
            // Bのm1, Aのm2, Aのm3
            MessageBox.Show(q);

            q = "";
            q += c.m1();
            q += c.m2();
            q += c.m3();
            // Bのm1, Aのm2, Cのm3, 13
            MessageBox.Show(q);

            q = "";
            q += a.m1();
            q += b.m2();
            q += c.m3();
            // Bのm1, Aのm2, Cのm3, 13
            MessageBox.Show(q);

            q = "";
            q += a2.m1();
            q += a2.m2();
            q += a2.m3();
            // Bのm1, Aのm2, Cのm3, 13
            MessageBox.Show(q);
        }
    }
}

0 コメント:

コメントを投稿