開発環境
- Microsoft Windows 7 Home Premium (OS)
- Microsoft Visual C# 2010 Express Edition (IDE)
- 言語: C#
独習C# 第3版 ハーバート・シルト (著) エディフィストラーニング株式会社 矢嶋聡 (監修, 翻訳) の第8章(C継承)の理解度チェック1、2を解いてみる。
1.
基本クラスの中から、派生クラスのメンバーにアクセスできない。逆に派生クラスかの中から、基本クラスのメンバーにアクセスできる。
2.
コード
using System;
public class TwoDShape
{
private double pri_width;
private double pri_height;
private string name;
public double Width
{
get { return pri_width; }
set { pri_width = value; }
}
public double Height
{
get { return pri_height; }
set { pri_height = value; }
}
public string Name
{
get{return name;}set{name=value;}
}
public TwoDShape()
{
Width = Height = 0.0;
Name = "null";
}
public TwoDShape(double w, double h, string n)
{
Width = w;
Height = h;
Name = n;
}
public TwoDShape(double x,string n)
{
Width=Height=x;
Name=n;
}
public TwoDShape(TwoDShape obj)
{
Width = obj.Width;
Height = obj.Height;
Name = obj.Name;
}
public void ShodDim()
{
Console.WriteLine(
"Width and height are {0} and {1}",
Width, Height);
}
public virtual double Area()
{
Console.WriteLine("Area() must be overriden");
return 0.0;
}
}
public class Circle : TwoDShape
{
public Circle(double r) :
base(r, "circle") { }
public override double Area()
{
return Math.Pow(Width / 2, 2) * Math.PI;
}
}
class Tester
{
public void Run()
{
double r=10;
double width=2*r;
Circle c = new Circle(width);
c.ShodDim();
Console.WriteLine(
"半径{0}の円の面積: {1}",
r, c.Area());
}
static void Main()
{
Tester t = new Tester();
t.Run();
}
}
入出力結果(Console Window)
Width and height are 20 and 20 半径10の円の面積: 314.159265358979 続行するには何かキーを押してください . . .
0 コメント:
コメントを投稿