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

转载于:https://www.cnblogs.com/gisland/archive/2009/08/16/1547484.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值