天天看点

C#中虚拟方法和抽象方法的区别,一起研究研究?一.在定义上:二.在实现上:三.在作用上:四.使用场景:

前言:在前面的文章中,我们已经对虚方法和抽象方法有了了解,那么本博文将阐述它们之间的区别,一起来看看吧。

文章目录:

  • 一.在定义上:
  • 二.在实现上:
  • 三.在作用上:
  • 四.使用场景:

一.在定义上:

虚方法用关键字

virtual

来进行声明,不允许再有static,abstract,或override修饰符

访问修饰符 virtual 函数返回类型 函数名(参数表) {函数体};
           

抽象方法用关键字

abstract

来进行声明,只在抽象类中定义,方法修饰符不能使用private, virtual, static.

二.在实现上:

虚方法 抽象方法
虚拟可以直接实例化 抽象不可以实例化
虚方法可以在任何非密封类中声明 抽象方法只能在抽象类中声明
虚方法可以在派生类中重写也可以不重写 抽象方法必须在派生类进行重写
虚方法有实现部分 抽象方法没有实现部分
虚方法不能是私有的 抽象方法是私有的、受保护的

三.在作用上:

在面向对象方法中,抽象类主要用来进行类型隐藏。构造出一个固定的一组行为的抽象描述;

当在基类中进行虚方法的定义以后,在派生类中可以对其方法进行调用,而且可以通过重写来改变其中实现的功能来实现自己的一些功能;

四.使用场景:

当所有子类都要实现某一功能时,使用虚拟,将这些功能包装在基类中,在派生类中用关键字

base

引用;

当功能不相关时,使用抽象类;

若有忽略不足之处希望大家及时提出!😃😦😦😦

继续阅读