覆盖或覆盖

问题描述 投票:101回答:5

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

我们应该提到“替换实施”覆盖或覆盖吗?它是针对特定语言的吗?

terminology override overwrite
5个回答
28
投票

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


126
投票

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

“覆盖”某些东西就是把其他东西放在原处,摧毁被覆盖的东西。 “覆盖”某些东西是为了在不损害或改变被覆盖的东西的情况下使其他东西运行而不是它。


11
投票

根据现实世界的例子,这是我对Overriding和Overwriting的差异的理解:

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

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

  1. 所有的事情都会通过,你知道你走的是正确的道路。因此,您不仅要保留以前的型号,还要不断增强它们。虽然怎么样?可能通过为现有模型添加一些新功能!现在,新型号具有PLUS新增强功能的所有功能。
  2. 你知道你经历的方式有点不对劲!多么糟糕的方法!!你很快就注意到公司应该改变整个技术,否则它将会经历严峻的形势(如破产等......)

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

希望这可以帮助你。


9
投票

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

简单来说,

行动和决定被覆盖。

信息被覆盖。


1
投票

我认为如果给出一些背景信息,理解和区分就会容易得多。

从APUE§10.17:

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

来自Bing词典:

覆盖某事:用你的权力拒绝某人的决定,命令等。

这里覆盖意味着它通过其更高的权威“忽略”某些东西。 abort不会替换进程的信号掩码,它只是“忽略”具有更高权限的约束。

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

© www.soinside.com 2019 - 2024. All rights reserved.