请问大家,在一个抽象类中,
一个抽象的方法和一个虚拟的方法什么区别?比如:
public abstract class NXml
{ public abstract void ToXml();
public abstract void tXml();
public virtual void tXml()
{
} }
一个抽象的方法和一个虚拟的方法什么区别?比如:
public abstract class NXml
{ public abstract void ToXml();
public abstract void tXml();
public virtual void tXml()
{
} }
解决方案 »
- winform在窗口显示出来前如何提示等待?
- TreeView遍历及添加节点的问题(数据库)
- 字符串转化为命令
- VS2005.Net制作的程序 不想让它随系统得变化而变化 只保留2000的样式就可以了 怎么做哦?
- 带水晶报表控件的窗体编译后不能在别的电脑上运行,这是怎么回事?
- 请问怎么终止程序的执行?谢谢!
- 在C#中如何改变文件的扩展名(后缀)?
- .net里如何通过一个calss作为出口调用其他的calss文件
- 文件写操作 没分了 高手决不会没分就不理的
- 项目需要RESTful 做api,这个如何做,求指导!
- 求助~进度条问题!~~急~~想在form窗体LOAD的时候显示进度条,进度条进度到100%的时候显示另一个窗体form2
- 求助!!如何用编程实现“分区的动态调整”
只允许在抽象类中使用抽象方法声明。
因为抽象方法声明不提供实实现,所以没有方法体;方法声明只是以一个分号结束,并且在签名后没有大括号 ({ })。例如:
public abstract void MyMethod();
实现由 overriding 方法提供,它是非抽象类的成员。
在抽象方法声明中使用 static 或 virtual 修饰符是错误的。
virtual 关键字用于修改方法或属性的声明,在这种情况下,方法或属性被称作虚拟成员。虚拟成员的实现可由派生类中的重写成员更改。调用虚方法时,将为重写成员检查该对象的运行时类型。将调用大部分派生类中的该重写成员,如果没有派生类重写该成员,则它可能是原始成员。
我觉得主要区别是在父类中前者不写实现而在子类中OVERRIDE,后者可以写实现也可被OVERRIDE。