一、简介 overwrite覆写,用new实现。在子类中用 new 关键字修饰定义的与父类中同名的方法,也称为覆盖,覆盖不会改变父类方法的功能。 二、代码 namespace 重寫{ class Parent { public void F
一、简介
overwrite覆写,用new实现。在子类中用 new 关键字修饰定义的与父类中同名的方法,也称为覆盖,覆盖不会改变父类方法的功能。
二、代码
namespace 重寫 { class Parent { public void F() { Console.WriteLine("Parent.F()"); } //重写的属性必须是virtual、abstract或override public virtual void G() //虚方法 { Console.WriteLine("Parent.G()"); } } class ChildOne : Parent //子类一继承父类 { new public void F() //覆写(overwrite)父类函数 { Console.WriteLine("ChildOne.F()"); } public override void G() //重写(override)父类虚函数,主要实现多态 { Console.WriteLine("ChildOne.G()"); } } class ChildTwo : Parent //子类二继承父类 { new public void F() { Console.WriteLine("ChildTwo.F()"); } public override void G() { Console.WriteLine("ChildTwo.G()"); } } class Program { static void Main(string[] args) { Parent childOne = new ChildOne(); Parent childTwo = new ChildTwo(); //调用Parent.F() childOne.F(); childTwo.F(); //实现多态 childOne.G(); childTwo.G(); } } }
三、结果
重写子类的方法,但是不会覆盖父类的方法。
到此这篇关于C#关键字之覆写overwrite的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持自由互联。