
have done 与 have been done 的区别
在英语中,“have done”和“have been done”是两种常见的动词时态形式,它们分别代表了不同的语法意义和用法。以下是两者的详细对比:
1. “have done”(现在完成时)
结构:主语 + have/has + 过去分词
意义:表示动作发生在过去但与现在的情况有联系,或者从过去某一时间开始一直延续到现在并还可能继续延续下去的动作。它强调对现在造成的影响或结果。
例句:
- I have finished my homework.(我已经完成了我的作业。)
- 这里强调的是“现在我已经没有作业要做了”。
- He has lived here for ten years.(他已经在这里住了十年了。)
- 表示从十年前开始住到现在,并且可能还会继续住下去。
特点:
- 动作的执行者是句子的主语(即主动语态)。
- 常与already、yet、just、ever、never等副词连用。
2. “have been done”(现在完成时的被动语态)
结构:主语 + have/has + been + 过去分词
意义:表示动作发生在过去,但主语是动作的承受者,而不是执行者。这种时态通常用于描述某个动作已经完成,并且对主语产生了某种影响或结果。
例句:
- The book has been sold out.(这本书已经卖完了。)
- 书是“被卖完”的,所以使用被动语态。
- My car has been repaired.(我的车已经被修好了。)
- 车是“被修好”的,因此也使用被动语态。
特点:
- 主语是动作的承受者(即被动语态)。
- 常与by短语连用,表示动作的执行者(但不是必须)。
总结
- “have done” 是现在完成时的主动语态,强调动作的执行者和对现在的影响。
- “have been done” 是现在完成时的被动语态,强调主语是动作的承受者。
通过理解这两种时态的结构和意义,你可以更准确地运用它们在句子中表达复杂的时间关系和逻辑关系。
