using System;
class BaseClass
{
// 既定のprivate
int n = 1;
protected int m = 2;
public int l = 3;
public virtual void printOut()
{
Console.WriteLine
("{0}:{1}:{2}", n, m, l);
}
/* privateのnフィールドにアクセスできる
* ようにメソッドを用意しておく */
public void setN(int n)
{
this.n = n;
}
}
// 派生クラス
class DerivedClass : BaseClass
{
public override void printOut()
{
/* privateなのでアクセスできない
* this.n=4 */
// protectedなのでアクセスできる
this.m = 5;
// 基本クラスのprintOut()を呼び出す
base.printOut();
}
}
class MainClass
{
static void Main()
{
// DerivedClass(派生クラス)をインスタンス化
DerivedClass sample = new DerivedClass();
// privvateのnに4を代入するメソッド
sample.setN(4);
// lはpublicなのでアクセスできる
sample.l = 6;
// 出力値;4:5:6
sample.printOut();
}
}
0 コメント:
コメントを投稿