概述
编译时的不同:
重写:
父类有方法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点出父类的方法。
最后
以上就是迷人帆布鞋为你收集整理的C#复习之隐藏方法和重写方法的全部内容,希望文章能够帮你解决C#复习之隐藏方法和重写方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复