開発環境
- OS: Windows 10 Pro
- IDE(統合開発環境): Visual Studio Community 2017
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 コメント:
コメントを投稿