have been done和 have done什么区别?

问题描述:

have been done和 have done什么区别?
English has been taught in China for many years.(中国教英语已经多年.)
有没有been?为什么?

have been done
表示已经被做(也许还在持续中),被动语态的完成
have done
表示已经做了某事,是主动语态的完成时
这个句子里English跟teach(即taught的原形)是被动关系,是被教.所以要加been