開発環境
- 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 コメント:
コメントを投稿