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方法
    }
}

你可能感兴趣的:(.net)