奥东......C# Base Coding

参考文章:

    http://www.cnblogs.com/wang7/archive/2012/04/17/2453624.html

1   C#的virtual & abstract

a)     virtual修饰的方法必须有方法实现也就是方法体(哪怕只有一对大括号),abstract修饰的方法不能有实现。

b)     virtual可以被子类重写,abstract必须被子类重写

c)     如果类中的某一函数被abstact修饰,则类名也必须用abstact修饰

d)    Abstract修饰的类不能被创建实例。只能够被继承

e)     C#中如果准备在子类重写父类的方法,则该方法在父类中必须用virtual修饰,在子类中必须用overide修饰,避免了程序员在子类中不小心重写了父类父类方法

f)     virtual和abstract都是用来修饰父类的,通过覆盖父类的定义,让子类重新定义。

         如果用来修饰方法,前面必须添加public,要不然就会出现编译错误:虚拟方法或抽象方法是不能私有的。毕竟加上virtual或abstract就是让子类重新定义的,而private成员是不能被子类访问的。

g)    java中没有Virtual,这里我把它看做是interface和abstract中的一个过渡

原文地址:https://www.cnblogs.com/nauy/p/4071039.html