現(xiàn)在完成時
句型:have/has+過去分詞
現(xiàn)在完成時表示動作發(fā)生在過去,但與現(xiàn)在有關(guān)系,即用一個發(fā)生在過去的動作來說明現(xiàn)在的情況。

虛擬句
這次只探討對過去情況的虛擬句,其句型為would/could/should/might have done。

區(qū)別
現(xiàn)在完成時里所發(fā)生的事情都是真實的,并且時間點在現(xiàn)在。
而虛擬句指不能實現(xiàn)或純假想的情況,可以對過去、現(xiàn)在或?qū)磉M行假想。虛擬語氣的本質(zhì)就是對根本不可能的情況發(fā)生假設。

例句對比
(1)
I have caught the bus because you helped me. 因為你的幫助我趕上了車。
If it had not been for your help yesterday, I could not have caught the bus. 如果昨天沒有你的幫助,我不會趕上公交車。(事實是你昨天已經(jīng)幫助了我,所以我趕上了車)

(2)
We have done something. 我們做了些什么。
If we had realized that we would have done differently. 如果我們早意識到這一點的話,我們的做法就會完全不同。(事實上沒及時意識到。)

(4)
He has been away from the city. 他已離開這個城市。
If he had known the news, he would have stayed here. 如果他知道了那個新聞,他便會留下來。(事實上他不知道那個新聞,沒留下來)

(5)
He hasn't finished his work. 他沒把工作做完。
If he had realized the importance of the work, he would have finished his work. 如果他意識到了這個工作的重要性,他就會把工作做完了。(事實上沒意識到,沒做完。)