C#的virtual概念
来源:互联网 发布:数控编程软件怎么下载 编辑:程序博客网 时间:2024/06/06 05:52
virtual一般用在基类中,子类中用override
1.无virtual时,编译期就确定方法的类型了。也即:无法实现多态了。
2.有vitual时,方法在运行时确定类型。可以实现多态,只要子类override基类的vitual方法。
new与virtual并没有必然的联系。从字面上看,new声明的方法是一个“新”方法,与基类完全没有关系(虽然不幸与基类的某个方法同名同参)。也即:通过向上转型(如:基类引用名=new 子类())得到的引用将无法看到子类中new出来的方法。所以会出现楼主第3点中的结果。
参考http://www.oread.cn/user1/cdbookcn/archives/2006/20061017123340.html
附:virtual,override,new使用例子
namespace VTest{ class Program { static void Main(string[] args) { Animal a = new Animal(); a.Move(); Bird b=new Bird(); b.Move(); Animal ab = new Bird(); ab.Move(); Beast be=new Beast(); be.Move(); Animal abb = new Beast(); abb.Move(); Console.ReadLine(); } } class Animal { public virtual void Move() { Console.WriteLine("Animal.Move"); } } class Bird : Animal { public new void Move() { Console.WriteLine("Bird.Move"); } } class Beast : Animal { public override void Move() { Console.WriteLine("Beast.Move"); } }} 文章引用自:http://hi.baidu.com/mnmatech/blog/item/dee7cfbf2e51e00a18d81feb.html
- C#的virtual概念
- C#的virtual概念
- C#的Virtual关键字
- 虚电路(Virtual Circuit)的概念
- 虚电路(Virtual Circuit)的概念
- C#的virtual & abstract
- C#的virtual 与abstract
- C#的virtual方法小结
- C# virtual方法的用法
- C# virtual修饰词的使用
- c# virtual
- c# virtual
- C# virtual
- C# Virtual
- C#流的概念
- c#中virtual方法的相关说明
- C#中virtual和abstract的区别
- C# Clone 深拷貝 與 virtual 的用法
- Android Wi-Fi Display(Miracast)介绍
- 迎接2013年
- Cassandra 使用Thrift API操作数据, 读写多行(range区间)多列(slice切片)数据
- ANDROID DisplayManager 服务解析一
- paip.获取当前实际北京时间API
- C#的virtual概念
- MySQL-访问权限与信息安全
- 五种常用排序
- C# 小程序之新手练习(五)15位身份证号转18位身份证号
- python及python web资料链接(持续更新中...)
- HP大中华区总裁孙振耀退休感言
- 应届生应该选择互联网大公司还是小团队
- lca转rmq
- sql实例不能启动的原因及处理