.NET抽象类提供多个派生类共享基类的公共定义,它既可以提供抽象方法,也可以提供非抽象方法。抽象类不能实例化,必须通过继承由派生类实现其抽象方法,因此对抽象类不能使用new关键字,也不能被密封。如果派生类没有实现所有的抽象方法,则该派生类也必须声明为抽象类。另外,实现抽象方法由overriding方法来实现。
虚方法和抽象方法的区别:
虚方法,声明使用virtual关键字。调用虚方法,运行时将确定调用对象是什么类的实例,并调用适当的覆写的方法。虚方法可以有默认的实现体。
抽象方法,必须被派生类覆写的方法。可以看成是没有实现体的虚方法,如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其他一般方法。
|