在Java语言中,缺省情况下方法是虚的;而C#正好相反。
哪种更好些呢?每种方法的优点和缺点是什么?
发布于 2009-06-10 01:05:35
默认情况下,Java的方式更简单,C#的方式更细粒度,更安全,效率更高。哪个更好,取决于啤酒持有者的眼睛。
发布于 2009-06-10 01:12:32
.Net强制程序员定义哪些函数可以被覆盖,而缺省情况下,除非使用了final关键字,否则Java函数可以被覆盖。
如果您是Open/Close Principle的坚定拥护者,那么您可能倾向于支持Java way。最好是允许类被扩展,方法被重写,这样基本的功能/代码就不会受到影响。出于这个原因,我支持/更喜欢Java方式。如果我从不同的角度来看待这个问题,我的观点可能正好相反。
发布于 2009-06-10 01:13:11
这是一个时间上的扰动。默认情况下,C++使用虚拟关键字和最终关键字。
Java遵循C++,并试图取其最好的并改进其缺点。过度使用继承的危险还没有暴露出来,所以Java选择使用final关键字和virtual作为默认值。
C#遵循Java,并具有后见之明的好处。在观察了C++的经验之后,Anders选择回到Java约定。
https://stackoverflow.com/questions/973240
复制相似问题