覆盖或覆盖

时间:2011-12-28 03:33:28

标签: terminology override overwrite

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

我们是否应该提及“替换实施”覆盖或覆盖? 这是语言特定的吗?

5 个答案:

答案 0 :(得分:122)

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

要“覆盖”,就要把其他东西放在原处,摧毁被覆盖的东西。要“覆盖”,某些事情会导致其他操作而不是它而不会伤害或更改被覆盖的内容。

答案 1 :(得分:29)

常用字是Override,它不是特定于语言的,因为您也可以从维基百科中读取:http://en.wikipedia.org/wiki/Method_overriding

答案 2 :(得分:11)

根据现实世界的例子,这是我对覆盖覆盖的差异的理解:

假设您有一家汽车制造公司。您的客户很有名,也很满意,因为他们始终信任您并购买您的产品。

为了继续您的业务,您基本上有2个选项:

  1. 所有的事情都来了,你知道你走的是正确的道路。因此,您不仅要保留以前的型号,还要不断增强它们。虽然怎么样?可能通过为现有模型添加一些新功能!现在,新型号具有 PLUS 所有新增功能的功能。

  2. 你知道你经历的方式有点不对劲!多么糟糕的方法!!你很快注意到公司应该改变整个技术,否则它将会经历严峻的形势(如破产等......)

  3. 毕竟,在编程方面,第一种方法是指覆盖,因为您在保留汽车之前的行为的同时,为您的汽车添加了一些新行为,而第二种方法是指覆盖,因为您想要完全改变行为,并从头开始开发新功能。

    希望这可以帮助你。

答案 3 :(得分:7)

两者都是通用术语 Override是预防某些先前的行动或决定,另一方面Overwrite指的是某些事情是先前写过的内容。

简单来说,

  

重写行动和决定。

     

信息被覆盖。

答案 4 :(得分:1)

我认为,如果给出一些背景信息,那么将非常容易理解和区分。

摘自 APUE §10.17:

  

POSIX.1还指定abort覆盖阻塞或忽略   信号(SIGABRT)的数量。

来自Bing词典:

  

优先于某人:利用您的权力拒绝某人的决定,命令,   等

此处覆盖表示它被其较高的权限“忽略”了某些内容。 abort不会替换过程的信号掩码,它只是以更高的权限“忽略”约束。

所以我认为 override overwrite 完全是两个不同的词。 覆盖应该是替换旧内容的词。