以前一直搞不清重写与隐藏 认为两者没多大区别 今天仔细查了下资料 发现两者的确存在不同的地方的 在多态中 就体现了出来
借用网上的例子
- public class BaseClass
- {
- public virtual void GetStringVirtual()
- {
- Console.WriteLine("基虚类方法");
- }
- public void GetString()
- {
- Console.WriteLine("基类方法。");
- }
- }
- public class DerivedClass : BaseClass
- {
- public override void GetStringVirtual()
- {
- Console.WriteLine("派生类重写方法。");
- }
- public new void GetString()
- {
- Console.WriteLine( "派生类隐藏方法");
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- DerivedClass derivedClass = new DerivedClass();
- BaseClass baseClass = derivedClass;
- derivedClass.GetStringVirtual();
- derivedClass.GetString();
- baseClass.GetStringVirtual();
- baseClass.GetString();
- Console.ReadKey();
- }
- }
结果是:
派生类重写方法
派生类隐藏方法
派生类重写方法
基类方法