在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本文实例分析了asp.net中virtual和abstract的区别,分享给大家供大家参考。具体分析如下: 一、Virtual方法(虚方法) virtual 关键字用于在基类中修饰方法。virtual的使用会有两种情况: 二、Abstract方法(抽象方法) abstract关键字只能用在抽象类中修饰方法,并且没有具体的实现。抽象方法的实现必须在派生类中使用override关键字来实现。 复制代码 代码如下: using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication3 { public abstract class Book { //抽象方法,不含主体,抽象方法所在类必须为抽象类,派生类必须实现该方法 public abstract void Introduce(); } public class JavaBook : Book { //实现抽象方法,必须实现,注意!必须添加override关键字 public override void Introduce() { Console.WriteLine("I'm Java"); } } public class test 五、virtual的用法以及override的用法 复制代码 代码如下: using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication2 { public abstract class Book { public virtual void Introduce() { Console.WriteLine("I'm book"); } public virtual void SayHi() { Console.WriteLine("Hi, I'm book"); } } public class JavaBook : Book public class test 六、virtual和abstract的区别慨括 (1)、virtual修饰的方法必须有实现(哪怕是仅仅添加一对大括号),而abstract修饰的方法一定不能实现。如对于virtual修饰的方法如果没有实现: (2)、virtual可以被子类重写,而abstract必须被子类重写,如果重写了virtual修饰的方法,前面必须添加override(这样就告诉了编译器你要重写虚拟方法),而且必须有实现,否则编译出错; (3)、如果类成员被abstract修饰,则该类前必须添加abstract,因为只有抽象类才可以有抽象方法。 (4)、无法创建abstract类的实例,只能被继承无法实例化,比如: BaseTest2 base2 = new BaseTest2();将出现编译错误:抽象类或接口不能创建实例。 (5)、C#中如果要在子类中重写方法,必须在父类方法前加virtual,在子类方法前添加override,这样就避免了程序员在子类中不小心重写了父类方法。 (6)、abstract方法必须重写,virtual方法必须有实现(即便它是在abstract类中定义的方法). 希望本文所述对大家的asp.net程序设计有所帮助。 |
请发表评论