一次搞懂C#的关键字abstract、override、virtual的区别与用法

**

一次搞懂C#的关键字abstract、override、virtual的区别与用法

**

其实编码相当于翻译,我们要从英文翻译成机器能懂的语言,而编程语言要学懂,需要翻译成我们能理解的汉语。

virtual 很接近的;几乎…的;事实上的;实际上的;实质上的;(通过计算机软件,如在互联网上**)模拟的,虚拟的**

abstract: 抽象的(与个别情况相对);纯理论的;抽象的(与具体经验相对);抽象(派)的

override :(以权力)否决,推翻,不理会;比…更重要;凌驾;超驰控制,超控(使自动控制暂时失效,改用手工控制)

virtual ,虚拟的,我们通常叫虚方法。
abstract ,抽象的,我们通常较抽象方法,抽象类。
override ,否决,推翻,意思是重写。
在面向对象设计的程序中,我们会经常用到,我们先按照具体的字面意思可以理解一下。

相同点:它们都是adj
不同点: abstract可以用来修饰方法属性索引器事件表示所修饰的内容缺少实现或未完全实现。
virtual 修饰方法、属性、索引器或事件声明,不能用来修饰,并使它们可以在派生类中被重写。
override 只能用来修饰方法和属性,主要用来重写方法,属性,重写的方法必须是 virtual、abstract 或 override 修饰的,不能重写非虚方法或静态方法。

派生类:子类的意思。

abstract 抽象的

(1)抽象类具有以下特性:

  1. 抽象类不能实例化。

  2. 抽象类可以包含抽象方法和抽象访问器。

  3. 不能用 sealed 修饰符修饰抽象类,因为这两个修饰符的含义是相反的。采用 sealed 修饰符的类无法继承,而 abstract 修饰符要求对类进行继承。

  4. 从抽象类派生的非抽象类(子类)必须包括继承的所有抽象方法和抽象访问器的实际实现。

  5. 在方法或属性声明中使用 abstract 修饰符以指示方法或属性不包含实现

(2)抽象方法具有以下特性:

  1. 抽象方法是隐式的虚方法。

  2. 只允许在抽象类中使用抽象方法声明。

  3. 因为抽象方法声明不提供实际的实现,所以没有方法体;方法声明只是以一个分号结束,并且在签名后没有大括号 ({ })。

(3)在抽象方法声明中使用 static 或 virtual 修饰符是错误的。除了在声明和调用语法上不同外,抽象属性的行为与抽象方法一样。在静态属性上使用abstract修饰符是错误的。在派生类中,通过包括使用 override 修饰符的属性声明,可以重写抽象的继承属性。

virtual 虚拟的

virtual关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写虚拟成员的实现可由派生类中的重写成员更改。默认情况下,方法是非虚拟的。不能重写非虚方法。virtual 修饰符不能与 static、abstract, private 或 override 修饰符一起使用。和抽象方法的相同点是都用了override关键字进行重写方法,不同点是抽象方法必须存在于抽象类中,而子类必须重写,除非子类也是抽象的。

override 实现

override 方法提供从基类继承的成员的新实现。由 override 声明重写的方法称为重写基方法。重写的基方法必须与 override 方法具有相同的签名。不能重写非虚方法或静态方法。重写的基方法必须是 virtual、abstract 或 override 的。 override 声明不能更改 virtual 方法的可访问性。 override 方法和 virtual 方法必须具有相同的访问级别修饰符。重写属性声明必须指定与继承属性完全相同的访问修饰符、类型和名称,并且被重写的属性必须是 virtual、abstract 或 override 的。

总结:父类有abstract的方法里,子类一定要对该方法override,而virtual的方法,可以不用.

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三只可爱猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值