这似乎是一个愚蠢的问题,但我只是如此好奇,并希望在谈论这个问题时使用正确的术语。在这里找不到类似的问题所以我决定创建一个新问题。
我们应该提到“替换实施”覆盖或覆盖吗?它是针对特定语言的吗?
常用词是Override,它不是语言特定的,因为你也可以从维基百科阅读:http://en.wikipedia.org/wiki/Method_overriding
如果您将一个实现完全替换为另一个实现,则会“覆盖”或更常见地“替换”。如果您在某些特定情况下将实现替换为另一个实现,则它会“覆盖”。
“覆盖”某些东西就是把其他东西放在原处,摧毁被覆盖的东西。 “覆盖”某些东西是为了在不损害或改变被覆盖的东西的情况下使其他东西运行而不是它。
根据现实世界的例子,这是我对Overriding和Overwriting的差异的理解:
假设您有一家汽车制造公司。您的客户很有名,也很满意,因为他们始终信任您并购买您的产品。
为了继续您的业务,您基本上有2个选项:
毕竟,在编程方面,第一种方法是指覆盖,因为你在保留汽车先前行为的同时为你的汽车增加了一些新的行为,而第二种方法是指覆盖,因为你想要改变行为完全,并从头开发新功能。
希望这可以帮助你。
两者都是通用术语Override
是预防一些先前的行动或决定,另一方面Overwrite
指的是写在先前写的东西上的东西。
简单来说,
行动和决定被覆盖。
信息被覆盖。
我认为如果给出一些背景信息,理解和区分就会容易得多。
从APUE§10.17:
POSIX.1还指定
abort
覆盖进程阻塞或忽略信号(SIGABRT
)。
来自Bing词典:
覆盖某事:用你的权力拒绝某人的决定,命令等。
这里覆盖意味着它通过其更高的权威“忽略”某些东西。 abort
不会替换进程的信号掩码,它只是“忽略”具有更高权限的约束。
所以我认为覆盖和覆盖完全是两个不同的词。覆盖应该是替换旧内容的词。