为什么C#默认情况下将方法实现为非虚拟?

与Java不同,为什么C#会将方法默认为非虚函数?它是更可能是一个性能问题,而不是其他可能的结果?

我提醒读者从安德斯Hejlsberg阅读一段话,现有架构带来的几个优点。但是,副作用呢?默认情况下,有非虚拟方法真的很好的折衷吗?

类应该设计为继承以便能够利用它。默认情况下虚方法的方法意味着类中的每个函数都可以被插入并替换为另一个,这不是一件好事。许多人甚至认为,类应该被默认密封。

虚拟方法也可能有轻微的性能影响。然而,这不可能是主要原因。

http://stackoverflow.com/questions/814934/why-c-sharp-implements-methods-as-non-virtual-by-default

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:为什么C#默认情况下将方法实现为非虚拟?