would have用作虚拟语气时,常常用在与过去事实相反的条件句中。如:
英语中的条件句一般分为两种:真实条件句、非真实条件句。非真实条件句常用虚拟语气,包括虚拟条件句、推测条件句和错综时间条件句。
虚拟语气条件句可以分为三类:一类是叙述与现在事实相反的情况,一类是叙述与过去事实相反的情况,还有一种情况是推测将来的情况,也叫做推测条件句。它们共同的特点就是时态向前推一级。
If I were young, I could enjoy the party.
如果我还年轻的话,我就能享受这个聚会了。
If I had a lot of money, I would buy a yacht.
我有许多钱的话,我会买艘游艇。
If my father hadn’t been sick, I would have graduated from college.
如果我父亲没有生病的,我早就从正规大学毕业了。
We wouldn’t have dozed off if our teacher had spoken louder.
如果我们的老师讲课大声点,我们就不会打瞌睡了。
If it should rain tomorrow, the game would be put off.
万一明天下雨,比赛就会延期。
If the Pacific Ocean were to dry up, I would change my mind.
如果太平洋干涸的话,我会改变主意(换句话说,我绝不会改变主意。)
虚拟语气的主句,可以是陈述句、疑问句、感叹句或祈使句。
Suppose you had a million dollars, what would you like to do first?
表示过去事实相反的虚拟语气条件句,可以用could have加过去分词,这里的could是情态动词,表示“能够”。
If I could have earned enough money, I would have traveled all over the world.
如果我能挣足够的钱,我就能环游世界了。
would have用作过去将来完成时时,过去将来完成时表示从过去某个时间看将来某时之前已经完成的动作。
He said that they would have arrived by seven o’clock.
他说他们将在七点以前到达。
She told me that she would have finished typing the letter before I came back.
她告诉我,在我回来之前,她将会把这封信打完。
She knew that by the time she arrived he would have gone back to his home village.
她知道,她到的时候,他早已经回家乡了。
I thought Judy would have graduated from college by then.
我知道,朱迪那时就已经大学毕业了。