【发布时间】:2012-12-01 04:01:31
【问题描述】:
我了解 Java 并且最近几天一直在学习 C#。现在我遇到了“virtual”关键字,正如this link 所建议的那样,它用于允许在子类中覆盖相应的方法、属性等。现在我认为即使不使用“virtual”关键字,我们也可以覆盖方法。那为什么需要呢?
【问题讨论】:
-
"现在我认为即使不使用 'virtual' 关键字,我们也可以覆盖方法。"你觉得呢?
-
@BoltClock 当然可以。基类中的
abstract和派生类中的override就足够了。不需要virtual:P -
是的,virtual 的意思是“我正在提供一个实现,但你可以多态地覆盖它”,abstract 的意思是“我正在定义一些你必须为其提供实现的东西,它将以多态方式运行”。与阴影(通常被认为是次优的)不同,函数签名必须匹配。
-
@CodesInChaos:嗯,是的;)
标签: c# oop overriding virtual