大森林
寻找小麻雀
关于C#中虚方法重载的说明
  在C#中,进行虚方法的重载有些体会,现与大家分享。  
  首先请大家看看下面的例子,  
  using   System;  
   
  abstract   public   class   contact  
  {  
            public   virtual   string   prinf()  
            {  
                    return   ("这是虚方法");  
            }  
  }  
   
  public   class   class1:contact  
  {  
              public   string   prinf()  
              {  
                            return   ("这是新的方法");//但这会出现编译警告,因为已经从contact那继承了一个同名方法  
              }  
  }  
  想要通过编译,只需将prinf的声明改为  
  public   override   string   prinf()  
  或  
  public   new   string   prinf()  
  但是这两种声明方式是有区别的,  
  请看下面的例子:  
  using   System;  
   
  abstract   public   class   contact  
  {  
            public   virtual   string   prinf()  
            {  
                    return   ("这是虚方法");  
            }  
  }  
   
  public   class   class1:contact  
  {  
              public   override   string   prinf()  
              {  
                            return   ("这是新的方法");        
                }  
  }  
  public   class   class2:contact  
  {  
              public   new   string   prinf()  
              {  
                            return   ("这是另一个新的方法");        
                }  
  }  
  public   class   text  
  {  
                public   static   void   Main()  
                {  
                            contact   []   contacts=new   contact   [2];  
                            contacts[0]=new   class1;  
                            contacts[1]=new   class2;  
                            foreach(contact   ct   in   contacts)  
                            {  
                                        Console.WriteLine(ct.printf);  
                              }  
                  }  
  }  
   
  最后我们看到的结果是  
   
  这是新的方法  
  这是虚方法  
posted on 2007-05-17 00:57  大森林  阅读(227)  评论(0)    收藏  举报