父类与子类间的隐藏与重写

来源:互联网 发布:安顺伟铭网络会所 编辑:程序博客网 时间:2024/06/06 02:50

父类与子类间的隐藏与重写例子(改写一题面试题)
(1)隐藏
当分别位于父类和子类的两个方法完全一样时,调用哪个方法由对象变量的类型决定。

  using System;    public class A      {                public  A()          {             Console.WriteLine("A");          }          public virtual void Fun()          {             Console.WriteLine("A.Fun()");          }      }      public class B : A      {                public B()          {             Console.WriteLine("B");          }          public new void Fun()          {             Console.WriteLine("B.Fun()");          }                public static void Main()          {                      A a = new A();     //A            a.Fun();          //A.Fun();            B b = new B();    //A  B  创建子类对象时,先调用父类构造函数,再调用子类构造函数            b.Fun();          //B.Fun();            a = b;            a.Fun();          //A.Fun();            (a as B).Fun();   //B.Fun();            (a as A).Fun();   //A.Fun();            Console.ReadKey();          }      } 
(2)重写
将父类方法定义为虚方法,子类重写同名方法后,通过父类变量调用哪个方法由对象变量引用的真实对象决定,而与变量自身所属的类型无关。

      using System;        public class A          {                    public  A()              {                 Console.WriteLine("A");              }              public virtual void Fun()              {                 Console.WriteLine("A.Fun()");              }          }          public class B : A          {                    public B()              {                 Console.WriteLine("B");              }                    public override void Fun()              {                 Console.WriteLine("B.Fun()");              }              public static void Main()              {                          A a = new A();     //A                a.Fun();          //A.Fun();                B b = new B();    //A  B                b.Fun();          //B.Fun();                a = b;                a.Fun();          //B.Fun();                (a as B).Fun();   //B.Fun();                (a as A).Fun();   //B.Fun();                Console.ReadKey();              }          }  

原创粉丝点击