C#.NET中的定義類成員(方法)
來源:互聯網
上載者:User
/*
* Created by SharpDevelop.
* User: noo
* Date: 2009-8-16
* Time: 15:40
*
* 定義類成員(方法),所有的成員都有自己的存取層級,public,private(預設),internal(項目內部),protected(類、衍生類別)
* 公用關鍵字static(靜態成員)
* 還有專有關鍵字virtual(虛方法,該方法可以在子類中重寫),abstract(抽象方法,該方法只能寫在抽象類別中,
* 而且必須在非抽象的衍生類別中重寫),override(在子類中重寫一個基類方法,如果使用了override,也可以使用sealed指定在衍生類別中
* 不能對這個方法作進一步的修改),extern(方法定義放在其他地方)
*
* 關於抽象類別請見abstractClass.cs
*
*/
using System ;
class methodA//普通類
{
public void method1()//普通方法
{
Console.WriteLine ("這是基類中的普通方法");
}
public static void method2()
{
Console.WriteLine ("這是基類中的靜態方法");
}
public virtual void method3()//虛方法
{
Console.WriteLine ("這是基類中的第一個虛方法");
}
public virtual void method4()//虛方法
{
Console.WriteLine ("這是基類中的第二個虛方法");
}
}
class methodB:methodA
{
public override void method3()
{
Console.WriteLine ("先執行基類中的方法");
base.method3();//調用基類方法base關鍵字
Console.WriteLine ("這是在子類中重寫基類第一個虛方法的一個方法");
}
public override sealed void method4()//指定在衍生類別中不能對這個方法作進一步的修改
{
Console.WriteLine ("這是在子類中重寫基類第二個虛方法的一個方法");
}
public void myMethod()
{
Console.WriteLine ("這是子類自己的方法");
}
}
class Test
{
static void Main()
{
methodA a=new methodA ();
a.method4 ();//調用methodA中的方法
methodA aa=new methodB ();
aa.method4 ();//調用mehtodB中的方法
//a和aa都不能調用myMethod方法
methodB b=new methodB ();
b.method4 ();//調用mehtodB中的方法
b.myMethod ();//調用myMethod方法
}
}