2011-12-28 267 views
74

这似乎是一个愚蠢的问题,但我只是很好奇,并希望在谈论这个问题时使用正确的术语。在这里找不到类似的问题,所以我决定创建一个新的。覆盖或覆盖

我们应该引用“替换实现”覆盖还是覆盖? 它是语言特定的吗?

+0

没有任何的背景下,这个问题太宽泛 – 2011-12-28 03:34:53

+5

它已经覆盖在每本书和语言,我已经参与英寸 – Joe 2011-12-28 03:35:36

+1

我知道这是一个大背景,但是这正是我的意思是问,在编程的一个非常普遍的情况下。从响应看来,Override是常用的词,但Overwrite也有其特定的用法。 – 2011-12-28 09:07:36

回答

24

的常用词是覆盖,它不是特定语言,你也可以从维基百科阅读:​​

91

如果要完全与另一个替换一个实现,它的“覆盖”或更常用“ 替代“。如果您在某些特定情况下用另一个替换实现,则为“覆盖”。

要“覆盖”有一些东西是放置其他东西在它的位置,摧毁被覆盖的东西。若要“覆盖”有些东西会导致其他操作而不是不损害或改变被覆盖的东西。

+2

我不同意。我相信术语“覆盖”总是可以用来表示你正在替换一个实现;不管多频繁或以什么方式进行。 – 2011-12-28 03:51:27

+0

我从来没有听说过这种方式,但是这样使用它似乎也不错。 – 2011-12-28 03:56:03

+20

在dictionary.com上快速搜索确认:*覆盖* - 通过在其位置输入新数据来销毁(数据)或(文件中的)数据。 *重写* - 使用权限拒绝或取消(一个决定,查看等) – allicarn 2012-11-15 19:50:17

3

两者都是通用术语 Override是一些先前的行动或决定的预防,另一方面Overwrite指的是写在先前写的东西。

简单的话

的行动和决定都覆盖。

信息被覆盖。

3

我想出了大约2年前在互联网上的链接中,作者用真实世界的例子来说明它们之间的区别:

假设你有一个汽车制造公司。您是著名的,快乐与你的客户,因为他们总是对你的信任和购买你的产品(如汽车)

对于汽车制造业的活动,你手头上有2种选择:

  1. 所有的东西通过并且你知道你以正确的方式行事。所以你不仅要保留以前的模型,还要继续加强它们。但是怎么来?可能通过向现有模型添加新功能!现在新款车型拥有PLUS全新增强功能。

  2. 你知道你经历过的方式是错的!多可怕的方法!你注意到很快,该公司应该改变整个技术...

毕竟,在编程方面,第一种方法是指重载因为你添加了一些新的行为车上再加上你保持汽车的先前行为,而第二种方法涉及覆盖,因为您想完全改变行为。

希望这会有所帮助。

+0

,帮助我很多.....非常感谢你 – 2016-11-18 15:36:08