c#中利用new和override来控制virtual方法的版本
2012-05-28 22:03
513 查看
在继承类中,可以通过override和new来重写隐藏基类声明为virtual的方法
可以看到当利用override重写后,即使将继承类转换为基类,调用的还是继承类的方法
利用new或隐式声明,则安照各自类的方法来调用
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 版本控制 { class Program { static void Main(string[] args) { myderived md = new myderived(); md.met1(); md.met2(); md.met3(); Console.WriteLine(); mybase mb = (mybase)md; mb.met1(); mb.met2(); mb.met3(); } } class mybase//基类声明 { public virtual void met1()//基类的方法要以virtual声明,负责不能被继承类重写隐藏 { Console.WriteLine("基类met1"); } public virtual void met2() { Console.WriteLine("基类met2"); } public virtual void met3() { Console.WriteLine("基类met3"); } } class myderived : mybase { public override void met1()//以override重写的方法 { Console.WriteLine("继承类met1"); } public new void met2()//以new来显示隐藏的方法 { Console.WriteLine("继承类met2"); } public void met3()//不加修饰符,以重名方法隐式隐藏的方法 { Console.WriteLine("继承类met3"); } } }
可以看到当利用override重写后,即使将继承类转换为基类,调用的还是继承类的方法
利用new或隐式声明,则安照各自类的方法来调用
相关文章推荐
- 使用 Override 和 New 关键字进行版本控制(C# 编程指南)
- 使用 Override 和 New 关键字进行版本控制(C# 编程指南)
- 使用 Override 和 New 关键字进行版本控制(C# 编程指南)
- c#编程之使用 Override 和 New 关键字进行版本控制
- 【KK学习笔记】c# 虚方法 virtual 、 重写方法 override 、new 的使用与理解
- c#初学-使用 Override 和 New 关键字进行版本控制(C# 编程指南)
- 使用 Override 和 New 关键字进行版本控制(C# 编程指南)
- 使用 Override 和 New 关键字进行版本控制(C# 编程指南)
- 使用 Override 和 New 关键字进行版本控制(C# 编程指南)
- C#.NET学习笔记---C#中方法覆盖时override和new的比较,abstract和virtual的比较(含C#多态的实现)
- C# 虚方法(virtual)覆盖(override) - 隐藏(new) - 重载
- 使用 Override 和 New 关键字进行版本控制(C# 编程指南)
- new,virtual,override,interface,delegate,event-------------C#——方法实现总结
- C#中的一些方法修饰关键字virtual override sealed new
- c#中new和override的区别. virtual和abstract方法的区别.
- C# 虚方法(virtual)覆盖(override) - 隐藏(new) - 重载
- C# 虚方法(virtual)覆盖(override) - 隐藏(new) - 重载
- C# 使用 Override 和 New 关键字进行版本控制
- C# new virtual override 之间的区别
- C#中的三个关键词new , virtual , override