using System;
class BaseClass
{
int num1 = 1;
string s = "BaseClass";
int num2=2;
int num3=3;
public void printOut()
{
Console.WriteLine
("{0} {1} {2} {3}",
num1, s, num2, num3);
}
public int Num1
{
set{this.num1=value;}
get{return this.num1;}
}
// 自動プロパティ
public string S{get;set;}
// プロパティに個別のアクセス設定(set)
public int Num2
{
protected set { this.num2 = value; }
get { return this.num2; }
}
// プロパティに個別のアクセス設定(get)
public int Num3
{
set{this.num3=value;}
protected get { return this.num3; }
}
}
class DerivedClass : BaseClass
{
public DerivedClass()
{
Num1 = 11;
S = "DerivedClass";
Num2 = 12;
Num3 = 13;
Console.WriteLine
("{0} {1} {2} {3}",
Num1, S, Num2, Num3);
}
}
class MainClass
{
static void Main()
{
var b = new BaseClass();
// 出力値:1 BaseClass 2 3
b.printOut();
var drv = new DerivedClass();
drv.Num1 = 101;
drv.S = "MainClass";
/* Num2のsetはprotectedなので
* アクセスできない
drv.Num2=102; */
drv.Num3 = 103;
// 出力値:101 DerivedClass 12
Console.WriteLine
("{0} {1} {2}",
drv.Num1, drv.S, drv.Num2);
/* Num3のgetはprotectedなのでアクセス
* できない
Console.WriteLine(drv.Num3);*/
}
}
0 コメント:
コメントを投稿