C#.NET中的定义类成员(方法)

/*
 * 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方法
    }
}
posted @ 2009-08-16 18:47  爱生活,爱GIS  阅读(515)  评论(0编辑  收藏  举报