首页 > 学院 > 开发设计 > 正文

C#复习之隐藏方法和重写方法

2019-11-08 19:40:01
字体:
来源:转载
供稿:网友

编译时的不同:

     重写:

父类有方法Identity(),并且必须使用virtual或abstract修饰(abstract修饰的话,该类也必须用abstract修饰),则子类可以用override进行重写。

      隐藏方法:

     与重写方法不同,父类方法不能用abstract修饰,可以用virtual或者不做申明。子类用new关键字声明此方法的隐藏。

运行时的不同:

    测试代码如下
    class PRogram    {        static void Main(string[] args)        {            Father a = new Father();            Child b = new Child();            a.Identity();            b.Identity();            Father c = new Child();                       c.Identity();            Console.ReadKey();        }    }    class Father    {        public int a = 5;        public virtual  void Identity()        {            a = 10;            Console.WriteLine("我是父类"+a);                    }    }    class Child : Father    {        public new void Identity()        {            //base.Identity();            Console.WriteLine("我是子类"+a);        }    }运行结果证明:重写: 调用方法会根据引用指向的实际对象进行调用。隐藏方法会根据引用进行调用。同时重写的方法如果想先运行父类的方法再运行子类的方法的话可以通过base点出父类的方法。
上一篇:Gson的入门使用

下一篇:工厂方法模式

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表