c#关键字:abstract & virtual
2011-09-26 08:42
281 查看
以前对关键字abstract和virtual一直没做太多深入了解,今天看msdn,专 门翻到c#关键字章节,想系统了解一下c#关键字,其中第一个就是abstract,msdn上的原话是:abstract 修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用 abstract 修饰符以指示类只能是其他类的基类。接下来描述了abstract的一些特性:不能实例化;可以包含抽象方法和抽象访问器;不能用 sealed 修饰符修改抽象类,意味着该类不能被继承;从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实现;在方法或属性声明中使用 abstract 修饰符以指示此方法或属性不包含实现等等。"abstract"可以修饰类、方法、属性、索引器及事件。而看到virtual关键字的时候,产生了一个疑 问:"virtual"关键字只能修饰方法和属性,却不能修饰类~但清楚记得以前上大学老师讲c++的时候有一个概念,叫虚基类。难道c#把 virtual的这个特性去掉了?然后我到google找答案~看到了两篇文章“c++虚基类”和“深入剖析c#继承机制”,终于明白了原来是由于这两者 的继承机制不同而决定的。c++允许多重继承,而c#只允许派生类从一个类中继承,由于多重继承产生的二义性问题需要虚基类来解决,所以c++有虚基类的 概念,而c#由于单继承的原因不会产生继承而带来的二义性问题,所以不需要virtual关键修饰类。
http://www.cnblogs.com/netstring/archive/2005/08/07/209293.html
http://www.cnblogs.com/netstring/archive/2005/08/07/209293.html
相关文章推荐
- C#基础巩固——成员函数(属性)的abstract、override、virtual关键字
- C# 委托 && Virtual, abstract, override && 静态构造函数
- c# 继承 和 关键字:abstract,const,override,readonly,static,virtual,base,this
- C++、C#中 abstract 与 virtual关键字的区别联系
- C#中的virtual,abstract,override和new关键字小结
- C#中抽象方法与虚方法的理解(abstract & virtual)
- C#多态;父类引用指向子类对象;new和override的区别;new、abstract、virtual、override,sealed关键字区别和使用代码示例;c#类的初始化顺序
- C# Keywords Series 8 interface&virtual&abstract&override&new
- C# 关键字--virtual
- 深入理解C# abstract和virtual关键字
- 转载:C#里的一些关键字, sealed, abstract, virtual,
- C# abstract 和 virtual 关键字
- C#基础知识五之abstract virtual关键字
- C#继承之base,virtual,override,abstract,new,sealed关键字
- C# 关键字 abstract, virtual, override, sealed, new
- c#的new、abstract、virtual、override,sealed关键字区别
- C#关键字abstract virtual interface new override
- 转:C#继承之base,virtual,override,abstract,new,sealed关键字
- C#的virtual & abstract