using System;
class BaseClass
{
// 既定値のprivate
int a = 0;
protected int b = 1;
public int c = 2;
public void setNum(int a)
{
/* 同じクラス内なので
* aにアクセス可能 */
this.a = a;
}
public virtual void printOut()
{
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
}
}
class DerivedClass : BaseClass
{
public override void printOut()
{
/* privateなのでaにはアクセス
* できない */
// this.a = 1;
/* protectedなので派生クラスからも
* アクセス可能 */
this.b = 2;
// publicなのでアクセス可能
this.c = c;
/* 基本クラスのメソッドを
* 呼び出す */
base.printOut();
}
}
class MainClass
{
static void Main()
{
DerivedClass drv = new DerivedClass();
drv.setNum(1);
/* bはprotectedなのでMainClassからは
* アクセスできない */
// drv.b=1;
// 出力値:1 2 2
drv.printOut();
// cはpublicなのでアクセス可能
drv.c = 1;
// 出力値:1 2 1
drv.printOut();
}
}
0 コメント:
コメントを投稿