C#.NET中的隐藏和重写(关键字new和override)

/*
 * Created by SharpDevelop.
 * User: noo
 * Date: 2009-8-16
 * Time: 16:40
 * 
 * 隐藏和重写(关键字分别为new和override)
 
*/

using  System ;
class  newA
{
    
public   virtual   void  output1()
    {
        Console.WriteLine (
" 基类方法1 " );
    }
    
public   void  output2()
    {
        Console.WriteLine (
" 基类方法2 " );
    }
}
class  newB:newA
{
    
public   override   void  output1() // 对应的基类方法一定要用virtual关键字。这种方法叫重写基类方法。
    {
        Console.WriteLine (
" 重写基类方法1 " );
    }
    
new   public   void  output2() // 对应的基类方法可用可不用virtual关键字。这种方法叫隐藏基类方法。
    {
        Console.WriteLine (
" 隐藏基类方法2 " );
    }
}
class  Test
{
    
static   void  Main()
    {
        newB b
= new  newB ();
        newA a;
        a
= b;
        a.output1 ();
// 调用B中的重写方法
        a.output2 (); // 调用A中的原始方法
        b.output1 (); // 调用B中的重写方法
        b.output2 (); // 调用B中的隐藏方法
        newA aa = new  newA ();
        aa.output1 ();
// 调用A中的原始方法
        aa.output2 (); // 调用A中的原始方法
    }
}

你可能感兴趣的:(override)