虚拟和文摘在asp.net中有什么区别

介绍

本篇文章给大家分享的是有关虚拟和文摘在asp.net中有什么区别,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强>一、虚拟方法(虚方法)

虚拟关键字用于在基类中修饰方法.virtual的使用会有两种情况:
情况1:在基类中定义了虚拟方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法。
情况2:在基类中定义了虚拟方法,然后在派生类中使用覆盖重写该方法。那么在对派生类实例的调用中,该虚方法使用的是派生重写的方法。
当一个方法被声明为虚拟时,它是一个虚拟方法,直到你使用类名变量=new ClassName();声明一个类的实例之前,它都不存在于真实的内存空间中。这个关键字在类的继承中非常常用,用来提供类方法的多态性支持。

<强>二、抽象方法(抽象方法)

抽象的关键字只能用在抽象类中修饰方法,并且没有具体的实现。抽象方法的实现必须在派生类中使用覆盖关键字来实现只
抽象方法声明使用,是必须被派生类覆写的方法,抽象类就是用来被继承的;可以看成是没有实现体的虚方法,如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其他一般方法;抽象类不能有实体的。
,
<强>三,多态
,
c#中多态的实现分为了两种,一种是编译时多态,一种是运行时多态
| -编译时多态通过一个类中多个方法的重载来实现的多态,系统在编译的时候,根据传递的参数确定具体调用哪个重载的方法;
| -运行时多态通过虚拟函数(虚函数),抽象方法实现的多态,派生类去覆盖虚函数或抽象方法,从而实现运行时多态。
,
<强>四、抽象的用法

代码如下:

使用系统;使用System.Collections.Generic
,
text;使用名称空间ConsoleApplication3

{
,,,公共抽象类的书
,,,{
,,,,,,,//抽象方法,不含主体,抽象方法所在类必须为抽象类,派生类必须实现该方法
,,,,,,,公共抽象空介绍();
,,,}
,,,公共类JavaBook:书
,,,{
,,,,,,,//实现抽象方法,必须实现,注意!必须添加覆盖关键字
,,,,,,,公共覆盖空白介绍()
,,,,,,,{
,,,,,,,,,,,Console.WriteLine(“我# 39;米Java");
,,,,,,,}
,,,}

,,,公共类测试
,,,{
,,,,,,,公共测试()
,,,,,,,{
,,,,,,,,,,,JavaBook JavaBook=new JavaBook ();
,,,,,,,,,,,javaBook.Introduce (),,,,,,//将调用JavaBook中引入()
,,,,,,,,,,,书书=new JavaBook ();
,,,,,,,,,,,book.Introduce (),,,,,,//将调用JavaBook中引入()
,,,,,,,}
,,,,,,,公共静态void Main ()
,,,,,,,{
,,,,,,,,,,,测试t=新的测试();
,,,,,,,}
,,,}
}
,
<强>五、虚拟的用法以及覆盖的用法

代码如下:

使用系统;使用System.Collections.Generic
,
text;使用名称空间ConsoleApplication2

{
,,,公共抽象类的书
,,,{
,,,,,,,公共虚拟空间介绍()
,,,,,,,{
,,,,,,,,,,,Console.WriteLine(“我# 39;米book");
,,,,,,,}
,,,,,,,公共虚拟空白SayHi ()
,,,,,,,{
,,,,,,,,,,,Console.WriteLine(“嗨,我# 39;m book");
,,,,,,,}
,,,}

,,,公共类JavaBook:书
,,,{
,,,,,,,公共覆盖空白介绍()
,,,,,,,{
,,,,,,,,,,,Console.WriteLine(“我# 39;米Java");
,,,,,,,}
,,,,,,,//注意,此方法没有覆盖父类的方法
,,,,,,,公共空间SayHi ()
,,,,,,,{
,,,,,,,,,,,Console.WriteLine(“嗨,我# 39;m Java");
,,,,,,,}
,,,}

,,,公共类测试
,,,{
,,,,,,,公共测试()
,,,,,,,{
,,,,,,,,,,,JavaBook JavaBook=new JavaBook ();
,,,,,,,,,,,书书=new JavaBook ();
,,,,,,,,,,,null

虚拟和文摘在asp.net中有什么区别