重写与隐藏的区别

来源:互联网 发布:数据库应用系统功能 编辑:程序博客网 时间:2024/05/21 20:51

 以前一直搞不清重写与隐藏 认为两者没多大区别 今天仔细查了下资料 发现两者的确存在不同的地方的 在多态中 就体现了出来

借用网上的例子 

Code:
  1. public class BaseClass  
  2.    {  
  3.        public   virtual void  GetStringVirtual()  
  4.        {  
  5.            Console.WriteLine("基虚类方法");  
  6.        }  
  7.   
  8.   
  9.        public void  GetString()  
  10.        {  
  11.            Console.WriteLine("基类方法。");  
  12.        }  
  13.    }  
  14.   
  15.    public class DerivedClass : BaseClass  
  16.    {  
  17.        public override void  GetStringVirtual()  
  18.        {  
  19.            Console.WriteLine("派生类重写方法。");  
  20.        }  
  21.   
  22.   
  23.        public new void  GetString()  
  24.        {  
  25.            Console.WriteLine( "派生类隐藏方法");  
  26.        }  
  27.    }  
  28.   
  29.   
  30.    class Program  
  31.    {  
  32.        static void Main(string[] args)  
  33.        {  
  34.            DerivedClass derivedClass = new DerivedClass();  
  35.            BaseClass baseClass = derivedClass;  
  36.   
  37.            derivedClass.GetStringVirtual();  
  38.            derivedClass.GetString();  
  39.   
  40.            baseClass.GetStringVirtual();  
  41.            baseClass.GetString();  
  42.   
  43.              
  44.            Console.ReadKey();  
  45.        }  
  46.    }  

 

结果是:

派生类重写方法

派生类隐藏方法

派生类重写方法

基类方法

 

 

最近返回来打基础 收获颇丰 >.  <

继续努力中